Шаг 9.
Основы компьютерной графики.
Основные понятия. Кодирование цвета. Палитра

    На этом шаге мы рассмотрим общие вопросы, связанные с кодированием цвета.

    Для того чтобы компьютер имел возможность работать с цветными изображениями, необходимо представлять цвета в виде чисел - кодировать цвет. Способ кодирования зависит от цветовой модели и формата числовых данных в компьютере.

    Для модели RGB каждая из компонент может представляться числами, ограниченными некоторым диапазоном - например, дробными числами от 0 до 1 либо целыми числами от 0 до некоторого максимального значения. В настоящее время достаточно распространенным является формат True Color, в котором каждая компонента представлена в виде байта, что дает 256 градаций для каждой компоненты: R=0...255, G = 0...255, В = 0...255. Количество цветов составляет 256*256*256 = 16.7 млн (224).

    Такой способ кодирования цветов можно назвать компонентным. В компьютере коды изображений True Color представляются в виде троек байтов, либо упаковываются в длинное целое (четырехбайтное) - 32 бита (так, например, сделано в API Windows):

  С = 00000000 bbbbbbbb gggggggg rrrrrrrr.

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

    Кроме того, некоторое изображение само по себе может использовать ограниченное количество цветов. Например, для черчения может быть достаточно двух цветов, для человеческого лица важны оттенки розового, желтого, пурпурного, красного, зеленого; а для неба - оттенки голубого и серого. В этих случаях использование полноцветного кодирования цвета является избыточным.

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

    В качестве примера дадим стандартную палитру дисплейных 16-цветных видеорежимов EGA, VGA (таблица 1).

Таблица 1. Палитра дисплейных 16-цветных видеорежимов EGA, VGA
Код цвета R G B Название цвета
0 0 0 0 Черный
1 120 0 0 Темно-красный
2 0 128 0 Зеленый
3 128 128 0 Коричнево-зеленый
4 0 0 128 Темно-синий
5 128 0 128 Темно-пурпурный
6 0 128 128 Сине-зеленый
7 128 128 128 Серый 50%
8 192 192 192 Серый 25%
9 255 0 0 Красный
10 0 255 0 Ярко-зеленый
11 255 255 0 Желтый
12 0 0 255 Синий
13 255 0 255 Пурпурный
14 0 255 255 Голубой
15 255 255 255 Белый

    Недостатком такой палитры можно считать отсутствие одного из важных цветов - оранжевого. Существуют также иные стандартные палитры, например, 256-цветная для VGA. Компьютерные видеосистемы обычно предоставляют возможность программисту установить собственную палитру.

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

    На следующем шаге мы рассмотрим формат файлов для хранения растровых изображений.




Предыдущий шаг Содержание Следующий шаг