В операционной системе Windows используются три формата битовых изображений - аппаратно-зависимый DDB (device-dependent bitmap), аппаратно-независимый DIB (device-independent bitmap) и DIB-секции.
Битовые изображения
Функция BitBlt
BOOL BitBlt(hDestDC, nDestX, nDestY, nDestWidth, nDestHeight, hSrcDC, nSrcX, nSrcY, dwROP);
Функция осуществляет передачу изображений между двумя контекстами устройств, при этом передается прямоугольный фрагмент, который на контексте-приемнике и на контексте-источнике имеет одинаковые размеры. Для задания координат и размеров используется логическая система координат, и логический размер изображения в обеих системах может быть различным.
Отдельно надо рассмотреть случай, когда один из контекстов является цветным, а другой черно–белым — при этом особым образом осуществляется преобразование цветов:
– при переходе от монохромного к цветному цвет, закодированный 1, соответствует цвету фона (задаваемому функцией SetBkColor), а цвет 0 — цвету текста (функция SetTextColor).
– при переходе от цветного к монохромному считается, что если цвет точки совпадает с цветом фона, то эта точка кодируется цветом 1, иначе 0.
|
|
Функция PatBlt не может рисовать битовые изображения, но используется для закраски прямоугольных областей экрана. Эта функция имеет имя PatBlt:
BOOL WINAPI PatBlt(HDC hdc, // контекст для рисованияint nX, // x-координата верхнего левого угла закрашиваемой областиint nY, // y-координата верхнего левого угла закрашиваемой областиint nWidth, // ширина областиint nHeight, // высота областиDWORD dwRop); // код растровой операцииПри использовании этой функции можно закрашивать области экрана с использованием следующих кодов растровых операций: PATCOPY, PATINVERT, PATPAINT, DSTINVERT, BLACKNESS, WHITENESS.
Возвращаемое функцией PatBlt значение равно TRUE при успешном завершении или FALSE при ошибке.
Битовое изображение DDB есть набор бит в оперативной памяти, который может быть отображен на устройстве вывода (например, выведен на экран видеомонитора или распечатан на принтере). Внутренняя структура изображения DDB жестко привязана к аппаратным особенностям устройства вывода. Поэтому представление изображения DDB в оперативной памяти полностью зависит от устройства вывода.
Иногда битовые изображения называют растровыми изображениями, подчеркивая тот факт, что его можно рассматривать как совокупность строк растра (горизонтальных линий развертки).
Аппаратно-независимое битовое изображение DIB содержит описание цвета пикселов изображения, которое не зависит от особенностей устройства отображения. Операционная система Windows после соответствующего преобразования может отобразить такое изображение на любом устройстве вывода.
|
|
Первые версии операционной системы Windows могли работать только с аппаратно-зависимыми изображениями DDB.
Кроме битовых изображений используются так называемые векторные изображения.
Чтобы использовать формат DDB в контексте устройства, он должен иметь организацию цвета этого контекста устройства. Поэтому, аппаратно-зависимый растровый формат (DDB) часто называется совместимым точечным рисунком (compatible bitmap) и обычно имеет производительность в GDI выше, чем аппаратно-независимый растровый формат (DIB).