RGBA renk modeli - RGBA color model

Dama tahtası arka planı üzerinde birleştirilmiş bir RGBA görüntüsü örneği. alfa üstte %0 ve altta %100'dür.

RGBA , kırmızı yeşil mavi alfa anlamına gelir . Bazen bir renk uzayı olarak tanımlansa da, aslında dördüncü bir alfa kanalıyla desteklenen üç kanallı bir RGB renk modelidir . Her bir piksel, bir görüntü kullanan diğerleri üzerinde birleştirilebilir nasıl olanak opak Alfa gösterir alfa birleştirme ile, şeffaf alanları ve anti-aliasing mat bölümleri kenarlarının.

Terim yok değil RGB renk uzayı kullanılıyor tanımlamak. Ayrıca, renklerin alfa değeriyle önceden çarpılıp çarpılmadığını belirtmez ve eğer öyleyse, bu ön çoğaltmanın hangi renk uzayında yapıldığını belirtmez. Bu, nasıl işleneceğini belirlemek için yalnızca "RGBA"dan daha fazla bilgiye ihtiyaç duyulduğu anlamına gelir. bir şekil.

Bazı bağlamlarda "RGBA" kısaltması , alternatifler için kullanılan "BGRA" gibi diğer terimlerle birlikte belirli bir bellek düzeni ( aşağıda RGBA8888 olarak adlandırılır ) anlamına gelir . Diğer bağlamlarda "RGBA" herhangi bir düzen anlamına gelir.

temsil

Bilgisayar grafiklerinde, RGBA renk alanı bilgilerini kodlayan pikseller bilgisayar belleğinde (veya diskteki dosyalarda) saklanmalıdır . Çoğu durumda, her kanal için bir tane olmak üzere dört eşit boyutlu bitişik bellek parçası kullanılır ve bir kanaldaki 0, siyah rengi veya saydam alfayı gösterirken, 1 bitin tümü beyaz veya tamamen opak alfayı belirtir. Şimdiye kadarki en yaygın biçim, her piksel için 32 bit olan her kanal için 8 bit (bir bayt ) depolamaktır .

Sipariş bellekte bu dört bayt görüntü verinin değiş tokuş edildiği karışıklığa yol açabilir, farklı olabilir. Bu kodlamalar genellikle belirli bir sırada dört harfle gösterilir (örn. RGBA, ARGB, vb.). Bu 4 harfli anımsatıcıların yorumu iyi kurulmamıştır. "RGBA" gibi bir anımsatıcıyı anlamanın iki tipik yolu vardır:

  • Bayt sırası şemasında "RGBA", bir bayt R, ardından bir bayt G, ardından bir bayt B ve ardından bir bayt A anlamına gelir. Bu şema yaygın olarak dosya formatlarını veya ağ protokollerini tanımlamak için kullanılır, her ikisi de bayt yönelimli.
  • Kelime sırası şemasında, "RGBA"nın, R'nin G'den daha önemli olduğu, B'den daha önemli olduğu, A'dan daha önemli olduğu, tam bir 32 bitlik kelimeyi temsil ettiği anlaşılmaktadır.

Bir big-endian sisteminde, iki şema eşdeğerdir. Bu, iki anımsatıcının birbirinin tersi olduğu bir küçük endian sistemi için geçerli değildir . Bu nedenle, açık olmak için, kodlamaya atıfta bulunurken hangi sıralamanın kullanıldığını belirtmek önemlidir. Bu makale, 4 adet 8 bitlik birimin mi yoksa bir 32 bitlik birimin mi tartışıldığını belirtmek için "8888" son ekini ekleyen, popülerliği olan bir şema kullanacaktır.

RGBA temsil dönüştürücü
küçük endian büyük endian
RGBA8888 ABGR32 RGBA32
ARGB32 BGRA8888 ARGB8888
RGBA32 ABGR8888 RGBA8888

RGBA8888

Gelen OpenGL ve Taşınabilir Ağ Grafikleri renk bellekte depolandığı (PNG) RGBA bayt sırası R, düşük adresinde bunun ardından G, bundan sonra B ve bir son olduğu şekilde kullanılır. Küçük bir endian mimarisinde bu, ABGR32'ye eşdeğerdir.

Birçok sistemde, kanal başına 8 bitten fazla (16 bit veya kayan nokta gibi) olduğunda, 8 bitlik kanallar başka bir sırada saklansa bile kanallar RGBA düzeninde saklanır.

ARGB32

Kanallar bellekte, tek bir 32 bitlik işaretsiz tamsayı, en yüksek 8 bitte alfa örneğine, ardından kırmızı örnek, yeşil örnek ve son olarak en düşük 8 bitte mavi örnek olacak şekilde düzenlenir:

Tipik bir 32bpp pikselde örnek düzen

ARGB değerleri tipik olarak 8 onaltılık basamak kullanılarak ifade edilir ve her bir onaltılık basamak çifti sırasıyla Alfa, Kırmızı, Yeşil ve Mavi kanalın değerlerini temsil eder. Örneğin, 80FFFF00%50,2 opak (önceden çarpılmamış) sarıyı temsil eder. 80128 255 (FF hex) maksimum değerinin yaklaşık% 50.2 olduğu ondalık 128 hex değeri, bir% 50.2 a değeri temsil eder; 80FFFF00değeri deşifre etmeye devam etmek için ilki FFkırmızının sahip olabileceği maksimum değeri temsil eder; ikincisi bir FFöncekine benzer ancak yeşil için; son 00, mavinin sahip olabileceği minimum değeri temsil eder (etkili olarak - mavi yok). Sonuç olarak, kırmızı + yeşil sarı verir. Alfanın kullanılmadığı durumlarda bu 6 haneye kısaltılabilir RRGGBB, bu yüzden alfayı en üst bitlere koymak için seçilmiştir. Bağlama bağlı olarak a 0xveya bir sayı işareti (#) onaltılık rakamların önüne konur.

Bu düzen, kişisel bilgisayarlarda 24 bit renk (ve 32 bit RGBA) tanıtıldığında popüler hale geldi. O zamanlar programların bir 32-bit birimi işlemesi dört adet 8-bit birimden çok daha hızlı ve kolaydı.

Little-endian sistemlerinde bu, BGRA bayt sırasına eşdeğerdir. Big-endian sistemlerinde bu, ARGB bayt sırasına eşdeğerdir.

RGBA32

Silicon Graphics gibi big-endian makinelerde ortaya çıkan bazı yazılımlarda , renkler ARGB32'ye benzer 32 bitte, ancak alfa üstte değil altta 8 bitte saklanıyordu . Örneğin, 808000FFKırmızı ve Yeşil:%50,2, Mavi:%0 ve Alfa:%100, bir kahverengi olacaktır. RGBA8888 verileri bu makinelerde kelimeler olarak okunsaydı elde edeceğiniz şey budur. Bu kullanılan Taşınabilir Keyfi Harita ve FLTK , ama genel olarak nadirdir.

RGBA piksel düzeni

Baytlar, ABGR sırasına göre bir küçük endian makinesinde bellekte saklanır.

Ayrıca bakınız

Referanslar

Dış bağlantılar