Системная цветовая палитра
Что такое цветовая палитра ?
Если вы видели художника за работой, вы уже знаете ответ на этот вопрос. Цветовая палитра - это не более чем набор цветов. Художник создает палитру из различных красок, смешивая их. Полученный набор красок используется для рисования.
В GDI встроены средства для работы с 256-цветными палитрами. Если видеоконтроллер способен работать с палитрами, создается одна системная палитра , которая содержит отображаемые на экране цвета. Вы можете думать об этой палитре как о таблице цветов, хранящейся в памяти видеоконтроллера.
Часть системной палитры (20 элементов) зарезервированы для использования операционной системой. В зарезервированных элементах хранятся статические цвета, которые нужны для рисования таких объектов, как рамки окон, полосы просмотра и т.п., а также изображений, рисуемых приложением. Если видеоконтроллер работает в режиме низкого цветового разрешения или приложение не использует цветовые палитры (несмотря на наличие соответствующих возможностей аппаратуры), цветовая гамма приложения ограничена статическими цветами.
Приложения никогда не изменяют статические цвета, записанные в зарезервированных ячейках системной палитры. Содержимое остальных 236 ячеек системной палитры может изменяться в процессе реализации приложениями своих собственных цветовых палитр.
Схематически системная цветовая палитра изображена на рис. 3.1.
Рис. 3.1. Системная цветовая палитра
Ниже мы перечислим все статические цвета , указав для каждого цвета комбинацию соответствующих RGB-компонент (в шестнадцатеричном представлении).
| Индекс в системной палитре | R (красный цвет) | G (зеленый цвет) | B (голубой цвет) | Цвет в палитре |
| 0 | 00 | 00 | 00 | черный |
| 1 | 80 | 00 | 00 | темно-красный |
| 2 | 00 | 80 | 00 | темно-зеленый |
| 3 | 80 | 80 | 00 | темно-желтый |
| 4 | 00 | 00 | 80 | темно-голубой |
| 5 | 80 | 00 | 80 | темно-малиновый |
| 6 | 00 | 80 | 80 | темно-синий |
| 7 | C0 | C0 | C0 | светло-серый |
| 8 | С0 | DC | C0 | светло-зеленый |
| 9 | A6 | CA | F0 | светло-голубой |
| 246 | FF | FB | F0 | кремовый |
| 247 | A0 | A0 | A4 | светло-серый |
| 248 | 80 | 80 | 80 | серый |
| 249 | FF | 0 | 0 | красный |
| 250 | 0 | FF | 0 | зеленый |
| 251 | FF | FF | 0 | желтый |
| 252 | 0 | 0 | FF | синий |
| 253 | FF | 0 | FF | малиновый |
| 254 | 0 | FF | FF | голубой (циан) |
| 255 | FF | FF | FF | белый |
Странное на первый взгляд расположение статических цветов в системной палитре (десять цветов находятся в начале таблицы, десять - в конце) выбрано для обеспечения правильной работы часто используемой растровой операции "ИСКЛЮЧАЮЩЕЕ ИЛИ".