3.8. Понятие палитры

Адаптер EGA и все совместимые с ним адаптеры предоставляют дополнительные возможности по управлению цветом. Наиболее распространенной схемой представления цветов для видеоустройств является так называемое RGB-представление, в котором любой цвет задается как сумма трех основных цветов -красного (Red), зеленого (Green) и синего (Blue) с заданными интенсивностями. Все пространство цветов представляется в виде единичного куба, и каждый цвет определяется тройкой чисел (г, g, b). Например, желтый цвет задается как (1, 1, 0), а малиновый - как (1, 0, 1). Белому цвету соответствует набор (1,1,1), а черному - (0,0,0).

Обычно под хранение каждой из компонент цвета отводится фиксированное количество п бит памяти. Поэтому допустимый диапазон значений для компонент цвета [0,2n-1], а не [0, 1].

Практически любой видеоадаптер способен отобразить значительно большее количество цветов, чем определяется количеством бит, отводимых в видеопамяти под 1 пиксел'. Для использования этой возможности вводится понятие палитры.

Палитра - это массив, в котором каждому возможному значению пиксела ставится в соответствии значение цвета (г, g, b), выводимое на экран. Размер палитры и ее организация зависят от типа используемого видеоадаптера.

Наиболее простой является организация палитры на EGA-адаптере. Под каждый из 16 возможных логических цветов (значений пиксела) отводится 6 бит, по 2 бита на каждую цветовую компоненту. При этом цвет в палитре задается байтом вида

OOrgbRGB,

где r> g> b, R, G, В могут принимать значения 0 или 1. Используя функцию setpalette void far setpalette (int color, int colorValue ); можно для любого из 16 логических цветов задать любой из 64 возможных физических цветов.

Компьютерная графика. Полигональные модели Функция getpalette

void far getpalette ( struct palettetype far * palette );

служит для получения текущей палитры, которая возвращается в виде следующей структуры:

struct palettetype
{
unsigned char size;
signed char colors [MAXCOLORS+1];
};

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


⇐ Предыдущая| |Следующая ⇒