Цветовая модель RGBA
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
RGBA означает красный зеленый синий альфа . Хотя его иногда называют цветовым пространством , на самом деле это трехканальная цветовая модель RGB, дополненная четвертым альфа-каналом . Альфа указывает, насколько непрозрачен каждый пиксель, и позволяет комбинировать изображение с другими с помощью альфа-композиции с прозрачными областями и сглаживанием краев непрозрачных областей. Каждый пиксель представляет собой 4D-вектор .
Этот термин не определяет, какое цветовое пространство RGB используется. В нем также не указывается, умножаются ли цвета предварительно на значение альфа, и если да, то не указывается, в каком цветовом пространстве было выполнено предварительное умножение. Это означает, что для определения того, как обрабатывать изображение.
В некоторых контекстах аббревиатура «RGBA» означает конкретную структуру памяти (ниже называемую RGBA8888 ), а в качестве альтернативы используются другие термины, такие как «BGRA». В других контекстах «RGBA» означает любой макет.
Представительство
[ редактировать ]В компьютерной графике пиксели, кодирующие информацию цветового пространства RGBA, должны храниться в памяти компьютера (или в файлах на диске). В большинстве случаев используются четыре фрагмента смежной памяти одинакового размера, по одному для каждого канала, а 0 в канале указывает на черный цвет или прозрачную альфу, а все биты, равные 1, указывают на белую или полностью непрозрачную альфу. Безусловно, наиболее распространенным форматом является хранение 8 бит (один байт ) для каждого канала, что составляет 32 бита на каждый пиксель.
Порядок этих четырех байтов в памяти может различаться, что может привести к путанице при обмене данными изображения. Эти кодировки часто обозначаются четырьмя буквами в определенном порядке (чаще всего RGBA). Интерпретация этой 4-буквенной мнемоники не совсем ясна. Есть два типичных способа понять мнемонику «RGBA»:
- В схеме порядка байтов под «RGBA» понимается байт R, за которым следует байт G, за ним следует байт B и за ним следует байт A. Эта схема обычно используется для описания форматов файлов или сетевых протоколов. которые оба байт-ориентированы.
- В схеме порядка слов «RGBA» понимается как полное 32-битное слово, где R более значим, чем G, который более значим, чем B, который более значим, чем A.
В системе с прямым порядком байтов эти две схемы эквивалентны. Это не относится к системе с прямым порядком байтов , где две мнемоники являются противоположными друг другу. Поэтому, чтобы быть однозначным, важно указать, какой порядок используется при ссылке на кодировку. В этой статье будет использоваться схема, имеющая некоторую популярность, которая заключается в добавлении суффикса «8888», чтобы указать, обсуждаются ли 4 8-битных модуля или «32», если один 32-битный модуль.
Прямой порядок байтов | Прямой порядок байтов | |
---|---|---|
RGBA8888 | АБГР32 | RGBA32 |
ARGB32 | БГРА8888 | ARGB8888 |
RGBA32 | АБГР8888 | RGBA8888 |
RGBA8888
[ редактировать ]В OpenGL и Portable Network Graphics (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
, поэтому было решено поместить альфу в верхние биты. В зависимости от контекста А 0x
или знак числа (#) [2] ставится перед шестнадцатеричными цифрами.
Этот макет стал популярным, когда на персональных компьютерах появился 24-битный цвет (и 32-битный RGBA). В то время программам было гораздо быстрее и проще манипулировать одним 32-битным блоком, чем четырьмя 8-битными.
В системах с прямым порядком байтов это эквивалентно порядку байтов BGRA. В системах с прямым порядком байтов это эквивалентно порядку байтов ARGB.
RGBA32
[ редактировать ] этого раздела Фактическая точность оспаривается . ( декабрь 2015 г. ) |
В некоторых программах, созданных на машинах с прямым порядком байтов, таких как Silicon Graphics , цвета хранились в 32 битах, аналогично ARGB32, но с альфа-каналом в нижних 8 битах, а не в верхних. Например, 808000FF
будет красный и зеленый: 50,2%, синий: 0% и альфа: 100%, коричневый. Вот что вы бы получили, если бы данные RGBA8888 считывались на этих машинах как слова. Используется в Portable Arbitrary Map и FLTK , но в целом встречается редко.
Байты хранятся в памяти на машине с прямым порядком байтов в порядке ABGR.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Спецификация портативной сетевой графики (PNG) (второе издание)» . www.w3.org . Проверено 25 ноября 2021 г.
- ^ Справочник по цветовой структуре Microsoft MSDN XAML (XAML/WPF/Silverlight), включая
#aarrggbb
иsc# scA,scR,scG,scB
Внешние ссылки
[ редактировать ]- Альфа-прозрачность в спецификации W3C PNG
- Цвета RGBA — страница предварительного просмотра с информацией о реализации на CSS3.info.