Главная » Win32 API » Типы растров

0

Растр представляет собой набор пикселов, каждому из которых со­поставлены биты, кодирующие его цвет. Количество цветов пиксела равно 2N, где N количество битов, отводимых для хранения цвета. Например, для режимов TraeColor для хранения цвета используется 24 бита, по 8 бит на каждую из компонент RGB, а в режимах HiColor цвет пиксела хранится в 16 битах.

Если устройство вывода поддерживает полный диапазон цветов,

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

Системная палитра это объект ОС, задающий цвета, которые мо­гут одновременно отображаться устройством. Системная палитра за­висит от аппаратных возможностей устройства отображения. Для мо­нитора она содержит 256 элементов, 20 из которых зарезервировано для статических цветов, которые не изменяются и используются для вывода элементов стандартного интерфейса.

Логическая палитра должна быть сначала создана в приложении функцией CreatePalette, а затем должна быть адаптирована для ис­пользования функцией RealizePalette, которая занимает неиспользуе­мые элементы системной палитры элементами логической, или, если неиспользуемых элементов не хватает для всех цветов логической па­литры, подбирает смешивание имеющихся цветов. Формирование цве­та для палитры осуществляется с помощью макроса PALETTERGB, параметрами которого являются интенсивности красной, зеленой и си­ней компонент цвета. Каждое приложение может реализовать свою ло­гическую палитру, поэтому перед предоставлением приложению фо­куса ввода ему посылается сообщение, обработка которого восстанав­ливает цвета, измененные другими приложениями. По умолчанию ло­гическая палитра содержит 20 базовых цветов.

В настоящее время различают аппаратно-зависимые (DDB, Device Dependent Bitmap) и аппаратно-независимые (DIB, Device Independent Bitmap) растры.

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

DIB-растры, помимо массива пикселов, содержат цветовую табли­цу и справочную информацию. Цветовая таблица является массивом структур, каждая из которых содержит 3 байта для интенсивностей компонент RGB и 1 резервный байт. Для пиксела же указывается но­мер элемента в таблице цветов. DIB-растры используются для обмена изображениями между приложениями. Для хранения DIB-растров используется файловый формат BMP.

Источник: Сучкова, Л.И. Win32 API: основы программирования: учебное пособие/ Л.И. Сучкова; АлтГТУ им. ИИ. Ползунова. -Барнаул, АлтГТУ, 2010. 138 с, ил.

По теме:

  • Комментарии