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

редактировать

Пример изображения RGBA с полупрозрачными и прозрачными частями, наложенного на фон шахматной доски

RGBA означает красный зеленый синий альфа . Хотя его иногда называют цветовым пространством , на самом деле это трехканальная цветовая модель RGB, дополненная четвертым альфа-каналом. Альфа указывает, насколько непрозрачен каждый пиксель, и позволяет комбинировать изображение с другими, используя альфа-наложение, с прозрачными областями и сглаживанием краев непрозрачных регионы.

Этот термин не определяет, какое цветовое пространство RGB используется. Он также не указывает, были ли цвета предварительно умножены на значение альфа, и если да, то не указывается, в каком цветовом пространстве было выполнено предварительное умножение. Это означает, что больше информации, чем просто "RGBA" необходимо определить, как обрабатывать изображение.

Чтобы еще больше запутать проблему, в некоторых контекстах термин «RGBA» означает конкретный макет в памяти четырех каналов, а другие термины, такие как «BGRA», используются для альтернатив. В других контекстах альтернативы используются чаще, но термин «RGBA» означает любой макет.

Содержание

  • 1 Представление
    • 1.1 RGBA (порядок байтов)
    • 1.2 ARGB (порядок слов)
    • 1.3 Шестнадцатеричный RGBA (порядок слов)
  • 2 См. Также
  • 3 Ссылки
  • 4 Внешние ссылки

Представление

В компьютерной графике пиксели, кодирующие информацию о цветовом пространстве RGBA, должны храниться в памяти компьютера (или в файлах на диске), в хорошо определенные форматы. Существует несколько способов кодирования цветов RGBA, что может привести к путанице при обмене данными изображения. Эти кодировки часто обозначаются четырьмя буквами в некотором порядке (например, RGBA, ARGB и т. Д.). К сожалению, интерпретация этих четырехбуквенных мнемоник недостаточно хорошо известна, что приводит к дальнейшей путанице. Есть два типичных способа понять мнемонику, такую ​​как «RGBA»:

  • В схеме порядка байтов «RGBA» означает байт R, за которым следует байт G, за которым следует байт B, за которым следует байтом A. Эта схема обычно используется для описания форматов файлов или сетевых протоколов, которые являются побайтно-ориентированными.
  • В схеме порядка слов «RGBA» понимается как полное 32-битное слово, где R более значимо, чем G, которое более значимо, чем B, которое более значимо, чем A. Эта схема может использоваться для описания структуры памяти в конкретной системе. Его значение зависит от порядка байтов в системе.

В системе с обратным порядком байтов две схемы эквивалентны. Это не относится к системе с прямым порядком байтов, где две мнемоники являются противоположными друг другу. Поэтому, чтобы быть недвусмысленным, важно указать, какой порядок используется при ссылке на кодировку.

Способы представления RGBA
ФорматКак порядок байтовПорядок слов
Младший порядок байтовБольшой порядок байтовLittle-endianBig-endian
RGBA (байтовый порядок)RGBA8888ABGR32RGBA32
ARGB (byte- порядок)ARGB8888BGRA32ARGB32
ABGR (байтовый порядок)ABGR8888RGBA32ABGR32
RGBA (порядок слов)ABGR8888RGBA8888RGBA32
ARGB (порядок слов)BGRA8888ARGB8888ARGB32
ABGR (порядок слов)RGBA8888ABGR8888ABGR32

RGBA8888 означает, что каждый канал (R, G, B, A) состоит из байта или 8 бит.

RGBA (порядок байтов)

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

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

ARGB (порядок слов)

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

Пример макета в типичном 32bpp пикселе

значения ARGB обычно выражаются с помощью 8 шестнадцатеричные цифры, где каждая пара шестнадцатеричных цифр представляет значения альфа, красного, зеленого и синего каналов соответственно. Например, 80FFFF00представляет 50,2% непрозрачного (без предварительного умножения) желтого цвета. Шестнадцатеричное значение 80, равное 128 в десятичной системе, представляет альфа-значение 50,2%, поскольку 128 составляет примерно 50,2% от максимального значения 255 (шестнадцатеричный FF); чтобы продолжить расшифровку значения 80FFFF00, первый FFпредставляет максимальное значение, которое может иметь красный цвет; второй FFаналогичен предыдущему, но для зеленого цвета; последний 00представляет минимальное значение, которое может иметь синий (фактически - нет синего). Следовательно, красный + зеленый дает желтый. В случаях, когда альфа не используется, ее можно сократить до 6 цифр RRGGBB, поэтому было решено поместить альфа в верхние биты. В зависимости от контекста перед шестнадцатеричными цифрами ставится 0xили знак числа (#).

В системах с прямым порядком байтов это эквивалентно BGRA (порядок байтов). В системах с прямым порядком байтов это эквивалентно ARGB (байтовый порядок).

Шестнадцатеричный RGBA (порядок слов)

В некоторых программах, созданных на машинах с прямым порядком байтов, таких как Silicon Graphics, RGBA (порядок слов) означает, что цвет указан аналогично в ARGB (порядок слов), но с альфой в 8 нижних битах, а не в верхних. Например, 808000FFбудет иметь красный и зеленый цвета: 50,2%, синий: 0% и альфа: 100%, коричневый. Это используется, например, в Переносимая произвольная карта (PAM).

Макет пикселя RGBA

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

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-03 04:34:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте