WikiDer > Цветовая модель RGBA
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
RGBA означает красный зеленый синий альфа. Хотя его иногда называют цветовое пространство, на самом деле это трехканальный Цветовая модель RGB дополнен четвертым альфа-канал. Альфа указывает, насколько непрозрачен каждый пиксель, и позволяет комбинировать изображение с другими, используя альфа-композитинг, с прозрачный области и сглаживание краев непрозрачных областей.
Срок делает нет определить, какое цветовое пространство RGB используется. Также не указывается, соответствуют ли цвета предварительно умноженный по альфа-значению, и если да, то в нем не указывается, в каком цветовом пространстве было выполнено предварительное умножение. Это означает, что для определения того, как обрабатывать изображение, требуется больше информации, чем просто «RGBA».
В некоторых контекстах аббревиатура «RGBA» означает конкретный макет памяти (называемый RGBA8888 ниже), с другими терминами, такими как «BGRA», используемыми для альтернатив. В других контекстах «RGBA» означает любой макет.
Представление
В компьютерной графике пиксели, кодирующие информацию о цветовом пространстве RGBA, должны храниться в память компьютера (или в файлах на диске). В большинстве случаев используются четыре части смежной памяти равного размера, по одной для каждого канала, и 0 в канале указывает черный цвет или прозрачную альфа-канал, а биты «все 1» указывают на белый или полностью непрозрачный альфа-канал. Безусловно, наиболее распространенным форматом является хранение 8 бит (один байт) для каждого канала, что составляет 32 бита для каждого пикселя.
В порядок из этих четырех байтов в памяти могут различаться, что может привести к путанице при обмене данными изображения. Эти кодировки часто обозначаются четырьмя буквами в некотором порядке (например, RGBA, ARGB и т. Д.). Интерпретация этой четырехбуквенной мнемоники не установлена. Есть два типичных способа понять мнемонику, такую как «RGBA»:
- В схеме порядка байтов "RGBA" означает байт R, за которым следует байт G, за которым следует байт B, за которым следует байт A. Эта схема обычно используется для описания форматов файлов или сетевых протоколов, которые оба ориентированы на байты.
- В схеме порядка слов «RGBA» понимается как полное 32-битное слово, где R более значимо, чем G, которое более значимо, чем B, которое более значимо, чем A.
В прямой порядок байтов системы, две схемы эквивалентны. Это не так для прямой порядок байтов система, в которой две мнемоники являются противоположными друг другу. Поэтому, чтобы быть недвусмысленным, важно указать, какой порядок используется при ссылке на кодировку. В этой статье будет использоваться популярная схема, которая заключается в добавлении суффикса «8888», чтобы указать, 4 8-битных блока или «32», если обсуждается один 32-битный блок.
Little-endian | С прямым порядком байтов | |
---|---|---|
RGBA8888 | ABGR32 | RGBA32 |
ARGB32 | BGRA8888 | ARGB8888 |
RGBA32 | ABGR8888 | RGBA8888 |
RGBA8888
В OpenGL и Переносимая сетевая графика (PNG) используется порядок байтов RGBA, где цвета хранятся в памяти так, что R находится по наименьшему адресу, G после него, B после него и A последним. В архитектуре с прямым порядком байтов это эквивалентно ABGR32.[1]
Во многих системах, когда на канал больше 8 бит (например, 16 бит или с плавающей запятой), каналы сохраняются в порядке RGBA, даже если 8-битные каналы хранятся в другом порядке.
ARGB32
Каналы расположены в памяти таким образом, что одно 32-битное целое число без знака имеет альфа-выборку в 8 самых высоких битах, за которой следуют красная выборка, зеленая выборка и, наконец, синяя выборка в самых младших 8 битах:
Значения ARGB обычно выражаются с помощью 8 шестнадцатеричный цифры, каждая пара шестнадцатеричных цифр представляет значения альфа, красного, зеленого и синего каналов соответственно. Например, 80FFFF00
представляет 50,2% непрозрачного (без предварительного умножения) желтого цвета. В 80
шестнадцатеричное значение, равное 128 в десятичном формате, представляет альфа-значение 50,2%, поскольку 128 составляет примерно 50,2% от максимального значения 255 (шестнадцатеричный FF); продолжать расшифровывать 80FFFF00
значение, первое FF
представляет максимальное значение, которое может иметь красный цвет; второй FF
аналогичен предыдущему, но для зеленого цвета; финал 00
представляет минимальное значение, которое может иметь синий (фактически - не синий). Следовательно, красный + зеленый дает желтый. В случаях, когда альфа не используется, это число может быть сокращено до 6 цифр. RRGGBB
, поэтому было решено поместить альфа в верхние биты. В зависимости от контекста a 0x
или числовой знак (#)[2] ставится перед шестнадцатеричными цифрами.
Этот макет стал популярным, когда на персональных компьютерах был представлен 24-битный цвет (и 32-битный RGBA). В то время программам было намного быстрее и проще управлять одним 32-битным блоком, чем четырьмя 8-битными блоками.
В системах с прямым порядком байтов это эквивалентно порядку байтов BGRA. В системах с прямым порядком байтов это эквивалентно порядку байтов ARGB.
RGBA32
В этом разделе фактическая точность оспаривается. (Декабрь 2015 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
В некоторых программах, созданных на машинах с прямым порядком байтов, таких как Силиконовая Графика, цвета хранились в 32-битном формате, аналогично ARGB32, но с альфа-каналом в Нижний 8 бит, а не верх. Например, 808000FF
будет красный и зеленый: 50,2%, синий: 0% и альфа: 100%, коричневый. Это то, что вы получили бы, если бы данные RGBA8888 читались на этих машинах как слова. Он используется в Портативная произвольная карта И в ФЛТК, но вообще редко.
Байты хранятся в памяти на машине с прямым порядком байтов в порядке ABGR.
Смотрите также
Рекомендации
- ^ Спецификация PNG
- ^ Справочник по цветовой структуре Microsoft MSDN XAML (XAML / WPF / Silverlight), включая
#aarrggbb
иsc # scA, scR, scG, scB
внешняя ссылка
- Альфа-прозрачность на W3C Спецификация PNG
- Цвета RGBA - Страница предварительного просмотра с информацией о реализации на CSS3.info