Jump to content

Цветовая модель RGBA

(Перенаправлено с ARGB )

Пример изображения RGBA, наложенного на фон шахматной доски. альфа равна 0% вверху и 100% внизу.

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-битный модуль.

Преобразователь представлений RGBA
Прямой порядок байтов Прямой порядок байтов
RGBA8888 АБГР32 RGBA32
ARGB32 БГРА8888 ARGB8888
RGBA32 АБГР8888 RGBA8888

В OpenGL и Portable Network Graphics (PNG) используется порядок байтов RGBA, при котором цвета хранятся в памяти так, что R находится по наименьшему адресу, G после него, B после него и A последним. В архитектуре с прямым порядком байтов это эквивалентно ABGR32. [1]

Во многих системах, когда имеется более 8 бит на канал (например, 16 бит или с плавающей запятой), каналы сохраняются в порядке RGBA, даже если 8-битные каналы хранятся в каком-то другом порядке.

Каналы расположены в памяти таким образом, что одно 32-битное целое число без знака содержит альфа-выборку в старших 8 битах, за которой следует красная выборка, зеленая выборка и, наконец, синяя выборка в младших 8 битах:

Пример макета в типичном пикселе с разрешением 32 бита на пиксель
Sample layout in a typical 32bpp pixel

Значения 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.

В некоторых программах, созданных на машинах с прямым порядком байтов, таких как Silicon Graphics , цвета хранились в 32 битах, аналогично ARGB32, но с альфа-каналом в нижних 8 битах, а не в верхних. Например, 808000FF будет красный и зеленый: 50,2%, синий: 0% и альфа: 100%, коричневый. Вот что вы бы получили, если бы данные RGBA8888 считывались на этих машинах как слова. Используется в Portable Arbitrary Map и FLTK , но в целом встречается редко.

Расположение пикселей RGBA

Байты хранятся в памяти на машине с прямым порядком байтов в порядке ABGR.

См. также

[ редактировать ]
  1. ^ «Спецификация портативной сетевой графики (PNG) (второе издание)» . www.w3.org . Проверено 25 ноября 2021 г.
  2. ^ Справочник по цветовой структуре Microsoft MSDN XAML (XAML/WPF/Silverlight), включая #aarrggbb и sc# scA,scR,scG,scB
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e13711a68ce05cc05a0b94e41bbd920b__1721744280
URL1:https://arc.ask3.ru/arc/aa/e1/0b/e13711a68ce05cc05a0b94e41bbd920b.html
Заголовок, (Title) документа по адресу, URL1:
RGBA color model - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)