Понятие цвета с точки
зрения ЭВМ и цели его применения в ИС
Основные принципы
хранения в памяти ЭВМ графической информации
Минимальной единицей
изображения является символ, при отображении графики картинка строится из
отдельных элементов - ПИКСЕЛОВ (от английских слов PICture ELement, означающих
"элемент картинки"). Очень часто пиксель совпадает с точкой дисплея,
но это совсем необязательно: например, в некоторых видеорежимах 1 пиксель может
состоять из 2 или 4 точек экрана.
Каждый пиксель характеризуется
цветом. Как и вся остальная информация в ЭВМ, цвет кодируется числом. В
зависимости от количества допустимых цветов, число двоичных разрядов на один пиксель
будет различным. Так, для черно-белой картинки закодировать цвет точки можно
одним битом: 0 - черный, 1 - белый. Такое изображение называют монохромным
(monochrome).
Для случая 16 цветов
требуется уже по 4 разряда на каждую точку, а для 256 цветов - 8, т.е. 1 байт.
Если для кодировки
отвести четыре бита, то можно закодировать 24=16 различных цветов, отвечающих
комбинациям бит от 0000 до 1111. Если отвести 8 бит - то такой рисунок может
содержать 28=256 различных цветов (от 00000000 до 11111111), 16 бит - 216=65
536 различных цветов (так называемый High Color). И, наконец, если отвести 24
бита, то потенциально рисунок может содержать 224=16 777 216 различных цветов и
оттенков - вполне достаточно даже для самого взыскательного художника! В
последнем случае кодировка называется 24-bit True Color. Следует обратить
внимание на слово "потенциально": даже если в файле и отводится 24
бита на каждый пиксел, это еще не означает, что вы действительно сможете
насладиться такой богатой палитрой - ведь технические возможности мониторов
ограничены.
Для того, чтобы наглядно
представить себе, как хранится в памяти ЭВМ простейшее изображение, рассмотрим
для примера белый квадратик на черном фоне размером 4х4. В черно-белом режиме
это будет выглядеть наиболее компактно (сначала для наглядности приведен
двоичный, а затем шестнадцатеричный вид):
1111 F
1001 9
1001 9
1111 F
В режиме 16-цветной
графики это же самое изображение потребует памяти в 4 раза больше:
1111 1111 1111
1111 F F F F
1111 0000 0000
1111 F 0 0 F
1111 0000 0000
1111 F 0 0 F
1111 1111 1111
1111 F F F F
Наконец, при 256 цветах
на каждую точку требуется уже по байту и наш квадратик разрастется еще вдвое:
11111111
11111111 11111111 11111111 FF FF FF FF
11111111
00000000 00000000 11111111 FF 00 00 FF
11111111
00000000 00000000 11111111 FF 00 00 FF
11111111
11111111 11111111 11111111 FF FF FF FF
Обратите внимание на то,
что белый цвет, как самый яркий, обычно имеет максимально возможный номер.
Поэтому для черно-белого режима он равен 1, для 16-цветного - 15, а для 256
цветов - 255.
Осталось обсудить вопрос,
как кодируются промежуточные цвета. Например, вполне естественно со стороны
читателя спросить: какой номер имеет, например, красный цвет? К сожалению,
методы кодирования цвета даже для одной и той же ЭВМ могут довольно существенно
различаться. Причем не только в зависимости от конструкции дисплея, но даже от
графического режима, в котором тот в данный момент работает! Более того,
соответствие между номерами цветов и их представлением на экране можно
переопределять по усмотрению пользователя (это называется изменением палитры).
Поэтому давайте ограничимся в качестве примера стандартным 16-цветным набором
для наиболее распространенного компьютера IBM PC:
0 - черный 8 -
темно-серый
1 - синий 9 -
ярко-синий
2 - зеленый A -
ярко-зеленый
3 - голубой B -
ярко-голубой
4 - красный C -
ярко-красный
5 - розовый D -
ярко-розовый
6 - коричневый E -
ярко-желтый
7 - серый F -
ярко-белый
Таким образом,
графическая информация, также как числовая и текстовая, в конечном счете
заносится в память в виде двоичных чисел.
Цвет аддитивный и
субтрактивный
Аддитивный цвет
получается при соединении света разных цветов. В этой схеме отсутствие всех
цветов представляет собой чёрный цвет, а присутствие всех цветов - белый. Схема
аддитивных цветов работает с излучаемым светом, например, монитор компьютера. В
схеме субтрактивных цветов происходит обратный процесс. Здесь получается
какой-либо цвет при вычитании других цветов из общего луча света. В этой схеме
белый цвет появляется в результате отсутствия всех цветов, тогда как их
присутствие даёт чёрный цвет. Схема субтрактивных цветов работает с отражённым
светом.
Индексированный цвет,
работа с палитрой
Индексированные палитры
цветов - это наборы цветов, из которых можно выбрать необходимый цвет.
Преимуществом ограниченных палитр является то, они что занимают гораздо меньше
памяти, чем полные системы RGB и CMYK. Компьютер создаёт палитру цветов и
присваивает каждому цвету номер от 1 до 256. Затем при сохранении цвета
отдельного пикселя или объекта компьютер просто запоминает номер, который имел
этот цвет в палитре. Для запоминания числа от 1 до 256 компьютеру необходимо
всего 8 бит. Для сравнения полный цвет в системе RGB занимает 24 бита, а в
системе CMYK - 32.