Эта глава описывает цветовые палитры, используемые в PHP.
Обзор
Палитра в компьютерной графике - это определенное подмножество из общего диапазона цветов, поддерживаемых компьютерной графической системой. Каждый цвет в палитре определяется числом, и для каждого пикселя сохраняется одно из таких чисел.
Это число определяет цвет пикселя. [1]
Цвета могут быть определены различными путями, но PHP поддерживает только некоторые из них.
Модель RGB
Цветовая модель RGB - это
модель, в которой красный, зеленый и синий цвета комбинируются различными путями для воспроизведения других цветов. Название модели и аббревиатура «RGB» происходят от трех основных цветов: красного (Red), зеленого (Green) и синего (Blue). [1]
Мы будем иметь дело с 24-битным RGB. Часто известный как «настоящий цвет» (true color), 24-битный цвет является самым глубоким (color depth) из обычно используемых в современных системах отображения и программном обеспечении. Его
палитра содержит 16,777,216 цветов. [1]
Цвета в RGB назначаются при помощи целых чисел в диапазоне от 0 до 255 для красного, зеленого и синего, где 0 обозначает полное отсутствие цвета, а 255 обозначает полную интенсивность цвета. Таким образом, (0, 0, 0) даст черный, а (255, 255, 255) - белый цвет. Красный цвет - это (255, 0, 0), зеленый - (0, 255, 0)
и т. д.
Рисунок 4.1. Цветовая модель RGB, отображенная на кубе
Изображение из Википедии, свободной энциклопедии.
Индексированный цвет
Индексированный цвет - это тип цветового пространства для цифровых изображений. В то время как изображение RGB указывает значения красного, зеленого и синего цветов отдельно для каждого пикселя, изображение с индексированными цветами содержит таблицу, которая определяет некоторое количество предустановленных цветов, и каждый пиксель ссылается на цвет в этой таблице. [1]
Индексированный цвет ограничен 256 цветами (или 16 цветами в меньшей палитре), которые могут быть любыми из набора в 16.7 миллионов 24-битных цветов. [7]
Индексированный цвет может значительно уменьшить размер файла изображений - особенно, больших изображений - используя только несколько различых
цветов. Однако, если изображение с индексированными цветами имеет слишком маленькую таблицу цветов, градиенты и другие тени могут выглядеть плохо. [1]
Рисунок 4.2. Изображение с индексированными цветами
Оригинальное изображение: 59.7 Кб
Индексированное изображение: 21.7 Кб
Замечание
Индексированный цвет обычно используется только с цветовой моделью RGB. [1]
Прозрачность
Одно вхождение цвета в палитре отдельного изображения
может быть определено как «прозрачное», а не как действительный цвет. Это значит, что декодер, встретив пиксель с такой величиной, вычислит его как имеющий цвет фона той части экрана, где расположено изображение. [1]
В дополнение к полной прозрачности, описанной выше, частичная прозрачность также возможна, если использовать концепцию альфа-канала.
В элементе двухмерного изображения, который хранит цвет каждого пикселя, сохраняется также дополнительное значение альфа-канала, которая изменяется от 0 до 1. Величина 0 обозначает отсутствие какой-либо информации о покрытии. Величина 1 обозначает полную непрозрачность. [1]
Рисунок 4.3. Частичная прозрачность
Модель HSV/HSL
Модель HSV (Hue - оттенок, Saturation
- насыщенность, Value - значение), также известная как HSB (Hue, Saturation, Brightness - яркость), определяет пространство цветов в терминах трех составных частей: оттенка - типа цвета (такого как красный, синий или желтый),
насыщенности - «вибрации» цвета, значения - яркости цвета. [1]
Рисунок 4.4. Цветовое колесо HSV
Изображение
из Википедии, свободной энциклопедии.
Модель HSL похожа на HSV. Цветовое пространство HSL, также называвемое HLS или HSI, означает Hue, Saturation, Lightness
- яркость (также Luminance или Luminosity) / Intensity - интенсивность. [1]