В видеобуфере (видеопамяти) для хранения информации о цвете пиксела отводится фиксированное количество битов памяти. Однако практически любой современный видеоадаптер способен отобразить значительно большее количество цветов, чем это определяется количеством битов, отводимых в видеобуфере для одного пиксела. Для использования этой возможности вводится понятие палитры. Палитра - это массив, в котором каждому возможному значению пиксела сопоставляется значение цвета, выводимое на экран. Размер палитры и ее организация зависят от типа используемого видеоадаптера.
При использовании видеокарты EGA/VGA для установки цвета пиксела используется 6 битов. Для формирования цвета используется система RrGgBb, где RGB - красный, зеленый и голубой цвета нормальной яркости, a rgb - те же цвета, но яркость их в два раза меньше. Для EGA/VGA-карт драйвер EGAVGA.BGI устанавливает 54 цвета. В табл. 27.5 приведены 16 основных цветов.
До того момента, пока цвет не определен, для вывода используется цвет, имеющий максимальный номер палитры и фон, устанавливаемый по минимальному номеру. Для EGA- и VGA-адаптеров в качестве фона может быть задано любое целое число в диапазоне 0-63.
Любой цвет для создания фигур и вывода текста может быть установлен с помощью процедуры SetColor(Color: word).
Фон задается процедурой SetBkColor(Color: word).
385
Таблица 27.5
Цвета видеокарты EGA/VGA
КОНСТАНТА | ЗНАЧЕНИЕ | код | ЦВЕТ |
EGABIack | 0 | 000000 | Черный |
EGABlue | 1 | 000001 | Синий |
EGAGreen | 2 | 000010 | Зеленый |
EGACyan | 3 | 000011 | Сине-зеленый |
EGARed | 4 | 000100 | Красный |
EGAMagenta | 5 | 000101 | Красно-синий |
EGABrown | 6 | 000110 | Коричневый |
EGALightGray | 7 | 000111 | Светло-серый |
EGADarkGray | 56 | 111000 | Темно-серый |
EGALightBlue | 57 | 111001 | Ярко-синий |
EGALightGreen | 58 | 111010 | Ярко-зеленый |
EGALightCyan | 59 | 111011 | Яркий сине-зеленый |
EGALightRed | 60 | 111100 | Ярко-красный |
EGALightMagenta | 61 | 111101 | Яркий красно-синий |
EGAYellow | 62 | 111110 | Желтый |
EGAWhite | 63 | 111111 | Белый |