Barevný model RGBA - RGBA color model
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|

RGBA znamená červená zelená modrá alfa. I když to je někdy popisováno jako barevný prostor, je to vlastně tříkanálový RGB barevný model doplněno čtvrtým alfa kanál. Alfa označuje, jak neprůhledný je každý pixel, a umožňuje kombinovat obrázek s ostatními pomocí alfa skládání, s průhledný oblasti a Anti aliasing okrajů neprůhledných oblastí.
Termín ano ne definujte, jaký barevný prostor RGB se používá. Rovněž neuvádí, zda jsou nebo nejsou barvy premultiplied hodnotou alfa, a pokud jsou, neuvádí, v jakém barevném prostoru byla provedena premultiplikace. To znamená, že k určení, jak zacházet s obrázkem, je zapotřebí více informací než jen „RGBA“.
V některých kontextech zkratka „RGBA“ znamená konkrétní rozložení paměti (tzv RGBA8888 níže), přičemž pro alternativy se používají další výrazy jako „BGRA“. V jiných kontextech „RGBA“ znamená jakékoli rozložení.
Zastoupení
V počítačové grafice musí být pixely kódující informace o barevném prostoru RGBA uloženy v paměť počítače (nebo v souborech na disku). Ve většině případů se používají čtyři stejně velké kousky sousední paměti, jeden pro každý kanál a 0 v kanálu označuje černou barvu nebo průhlednou alfa, zatímco všechny bity 1 označuje bílou nebo zcela neprůhlednou alfa. Zdaleka nejběžnějším formátem je uložení 8 bitů (jeden byte ) pro každý kanál, což je 32 bitů pro každý pixel.
The objednat těchto čtyř bajtů v paměti se může lišit, což může vést k nejasnostem při výměně obrazových dat. Tato kódování jsou často označována čtyřmi písmeny v určitém pořadí (např. RGBA, ARGB atd.). Interpretace těchto 4písmenných mnemotechnických pomůcek není dobře zavedena. Existují dva typické způsoby, jak pochopit mnemotechniku, například „RGBA“:
- Ve schématu uspořádání bajtů se výrazem „RGBA“ rozumí bajt R, za nímž následuje bajt G, za nímž následuje bajt B a za ním bajt A. Toto schéma se běžně používá k popisu formátů souborů nebo síťových protokolů, které jsou orientovány na bajty.
- Ve schématu slovosledu se výrazem „RGBA“ rozumí úplné 32bitové slovo, kde R je významnější než G, což je významnější než B, což je významnější než A.
V big-endian systému jsou obě schémata rovnocenná. To není případ a malý Endian systém, kde jsou dvě mnemotechnické zkratky navzájem. Proto, aby byl jednoznačný, je důležité uvést, jaké pořadí se použije při odkazování na kódování. Tento článek použije schéma, které má určitou popularitu, což je přidání přípony „8888“ k označení, zda jsou diskutovány 4 8bitové jednotky nebo „32“, pokud se jedná o 32bitovou jednotku.
Malý Endian | Big-endian | |
---|---|---|
RGBA8888 | ABGR32 | RGBA32 |
ARGB32 | BGRA8888 | ARGB8888 |
RGBA32 | ABGR8888 | RGBA8888 |
RGBA8888
v OpenGL a Přenosná síťová grafika (PNG) se používá pořadí bajtů RGBA, kde jsou barvy uloženy v paměti tak, že R je na nejnižší adrese, G za ní, B za tím a A poslední. Na malé endian architektuře je to ekvivalent ABGR32.[1]
V mnoha systémech, kde je více než 8 bitů na kanál (například 16 bitů nebo s plovoucí desetinnou čárkou), jsou kanály uloženy v pořadí RGBA, i když jsou 8bitové kanály uloženy v jiném pořadí.
ARGB32
Kanály jsou uspořádány v paměti takovým způsobem, že jediné 32bitové celé číslo bez znaménka má alfa vzorek v nejvyšších 8 bitech, následovaný červeným vzorkem, zeleným vzorkem a nakonec modrým vzorkem v nejnižších 8 bitech:

Hodnoty ARGB jsou obvykle vyjádřeny pomocí 8 hexadecimální číslice, přičemž každá dvojice hexadecimálních číslic představuje hodnoty kanálu Alpha, Red, Green a Blue. Například, 80FFFF00
představuje 50,2% neprůhledné (nepremnožené) žluté. The 80
hexadecimální hodnota, která je 128 v desítkové soustavě, představuje 50,2% alfa hodnotu, protože 128 je přibližně 50,2% z maximální hodnoty 255 (FF hex); pokračovat v dešifrování 80FFFF00
hodnota, první FF
představuje maximální hodnotu, kterou může mít červená; druhý FF
je jako předchozí, ale pro zelenou; finále 00
představuje minimální hodnotu, kterou může mít modrá (ve skutečnosti - žádná modrá). V důsledku toho červená + zelená poskytuje žlutou. V případech, kdy se alfa nepoužívá, lze jej zkrátit na 6 číslic RRGGBB
, proto bylo vybráno umístit alfa do horních bitů. V závislosti na kontextu a 0x
nebo znak čísla (#)[2] je vložen před hexadecimální číslice.
Toto rozvržení se stalo populárním, když byly na osobních počítačích zavedeny 24bitové barvy (a 32bitové RGBA). V té době bylo pro programy mnohem rychlejší a snazší manipulovat s jednou 32bitovou jednotkou než se čtyřmi 8bitovými jednotkami.
V systémech little-endian je to ekvivalentní pořadí bajtů BGRA. V systémech big-endian je to ekvivalentní pořadí bajtů ARGB.
RGBA32
![]() | Tato část je věcná přesnost je sporný.Prosince 2015) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
V nějakém softwaru pocházejícím z big-endian strojů, jako je Křemíková grafika, barvy byly ukládány do 32 bitů podobných ARGB32, ale s alfa v dno 8 bitů, spíše než vrchol. Například, 808000FF
by byla červená a zelená: 50,2%, modrá: 0% a alfa: 100%, hnědá. To je to, co byste dostali, kdyby byla data RGBA8888 na těchto počítačích čtena jako slova. Používá se v Přenosná libovolná mapa a v FLTK, ale obecně je to vzácné.
Bajty jsou uloženy v paměti na stroji typu little-endian v pořadí ABGR.
Viz také
Reference
- ^ Specifikace PNG
- ^ Odkaz na barevnou strukturu Microsoft MSDN XAML (XAML / WPF / Silverlight), včetně
#aarrggbb
asc # scA, scR, scG, scB
externí odkazy
- Alfa průhlednost na W3C Specifikace PNG
- Barvy RGBA - Náhledová stránka s informacemi o implementaci na CSS3.info