RGB

Материал из wikiPrint

RGB (аббревиатура английских слов Red, Green, Blue — красный, зелёный, синий) — аддитивная цветовая модель, как правило описывающая способ синтеза цвета для цветовоспроизведения. В российской традиции иногда обозначается как КЗС.

Выбор основных цветов обусловлен особенностями физиологии восприятия цвета сетчаткой человеческого глаза. Цветовая модель RGB нашла широкое применение в технике.

Аддитивной она называется потому, что цвета получаются путём добавления (англ. addition) к черному. Иначе говоря, если цвет экрана, освещённого цветным прожектором, обозначается в RGB как (r1, g1, b1), а цвет того же экрана, освещенного другим прожектором, — (r2, g2, b2), то при освещении двумя прожекторами цвет экрана будет обозначаться как (r1+r2, g1+g2, b1+b2).

Изображение в данной цветовой модели состоит из трёх каналов. При смешении основных цветов (основными цветами считаются красный, зелёный и синий) — например, синего (B) и красного (R), мы получаем пурпурный (M magenta), при смешении зеленого (G) и красного (R) — жёлтый (Y yellow), при смешении зеленого (G) и синего (B) — циановый (С cyan). При смешении всех трёх цветовых компонентов мы получаем белый цвет (W).

В телевизорах и мониторах применяются три электронные пушки (светодиода, светофильтра) для красного, зелёного и синего каналов.

Цветовая модель RGB имеет по многим тонам цвета более широкий цветовой охват (может представить более насыщенные цвета), чем типичный охват цветов CMYK, поэтому иногда изображения, замечательно выглядящие в RGB, значительно тускнеют и гаснут в CMYK.

История

Джеймс Максвелл предложил аддитивный синтез цвета как способ получения цветных изображений в 1861 году.

Определение

Цветовая модель RGB была изначально разработана для описания цвета на цветном мониторе, но поскольку мониторы разных моделей и производителей различаются, были предложены несколько альтернативных цветовых моделей, соответствующих «усредненному» монитору. К таким относятся, например, sRGB и Adobe RGB.

Цветовая модель RGB может использовать разные оттенки основных цветов, разную цветовую температуру (задание «белой точки»), и разный показатель гамма-коррекции.

Представление базисных цветов RGB согласно рекомендациям ITU, в пространстве XYZ: Температура белого цвета: 6500 кельвинов (дневной свет)

Красный: x=0.64 y=0.33 
Зелёный: x=0.29 y=0.60 
Синий:   x=0.15 y=0.06 

Матрицы для перевода цветов между системами RGB и XYZ (величину Y часто ставят в соответствие яркости при преобразовании изображения в чёрно-белое):

X = 0.431*R+0.342*G+0.178*B
Y = 0.222*R+0.707*G+0.071*B
Z = 0.020*R+0.130*G+0.939*B

R =  3.063*X-1.393*Y-0.476*Z
G = -0.969*X+1.876*Y+0.042*Z
B =  0.068*X-0.229*Y+1.069*Z

Числовое представление

Для большинства приложений значения координат r, g и b можно считать принадлежащими отрезку [0,1], что представляет пространство RGB в виде куба 1×1×1.

В компьютерах для представления каждой из координат традиционно используется один октет, значения которого обозначаются для удобства целыми числами от 0 до 255 включительно. Следует учитывать, что чаще всего используется гамма-компенсированое цветовое пространство sRGB, обычно с показателем 1.8 (Mac) или 2.2 (PC).

В HTML используется #RrGgBb-запись, называемая также шестнадцатеричной: каждая координата записывается в виде двух шестнадцатеричных цифр, без пробелов. Например, #RrGgBb-запись белого цвета — #FFFFFF.

COLORREF

COLORREF — стандартный тип для представления цветов в Win32. Использует для определения цвета в RGB виде. Размер — 4 байта. При определении какого-либо RGB цвета, значение переменной типа COLORREF можно представить в шестнадцатеричном виде так:

0x00bbggrr

rr, gg, bb — значение интенсивности соответственно красной, зеленой и синей составлющих цвета. Максимальное их значение — 0xFF.

Определить переменную типа COLORREF можно следующим образом:

COLORREF C = (b,g,r);

b, g и r — интенсивность (в диапазоне от 0 до 255) соответственно синей, зеленой и красной составляющих определяемого цвета C. То есть ярко-синий цвет может быть определён как (0,0,255),красный как (255,0,0), ярко-фиолетовый — (255,0,255), чёрный — (0,0,0), а белый — (255,255,255)