растровые карты Device-Dependent
Зависимые от устройства растровые изображения (DDBS) описываются с помощью одной структуры, структуры BITMAP. Члены этой структуры указывают ширину и высоту прямоугольной области в пикселях; ширина массива, который сопоставляет записи из палитры устройств с пикселями; и цветовый формат устройства с точки зрения цветовых плоскостей и битов на пиксель. Приложение может получить цветной формат устройства, вызвав функцию GetDeviceCapsи указав соответствующие константы. Обратите внимание, что DDB не содержит значения цветов; Вместо этого цвета находятся в формате, зависяющем от устройства. Дополнительные сведения см. в разделе Цвет в растровых изображениях. Так как каждое устройство может иметь собственный набор цветов, DDB, созданный для одного устройства, может не отображаться на другом устройстве.
Чтобы использовать DDB в контексте устройства, он должен иметь цветовую организацию этого контекста устройства. Таким образом, DDB часто называется совместимой растровой карты и обычно имеет лучшую производительность GDI, чем DIB. Например, чтобы создать растровое изображение для памяти видео, лучше всего использовать совместимое растровое изображение с тем же цветовым форматом, что и основной дисплей. Как только в памяти видео отрисовка на растровое изображение и отображение его на экране значительно быстрее, чем из области памяти системы или непосредственно из DIB.
Помимо повышения производительности GDI, совместимые растровые изображения используются для записи изображений (см. раздел Захват изображения) и создание растровых изображений во время выполнения в меню "Создание растрового изображения" (см. использование меню).
Чтобы передать растровое изображение между устройствами с другой цветовой организацией, используйте GetDIBits для преобразования совместимого растрового изображения в DIB и вызова SetDIBits или StretchDIBits для отображения DIB на втором устройстве.
Существует два типа DDB: отменяемые и неизменяемые. Удаленная база данных DDB — это растровое изображение, которое система удаляет, если растровое изображение не выбрано в контроллер домена и если системная память низка. Функция CreateDiscardableBitmapсоздает удаленные растровые изображения. CreateBitmap, CreateCompatibleBitmapи Функции CreateBitmapIndirect создают нерассказуемые растровые карты.
Приложение может создать DDB из DIB, инициализировав необходимые структуры и вызвав функцию CreateDIBitmap. Указание CBM_INIT в вызове CreateDIBitmap эквивалентно вызову функции CreateCompatibleBitmap для создания DDB в формате DDB, а затем вызова функции SetDIBits для преобразования битов DIB в DDB. Чтобы определить, поддерживает ли устройство функцию SetDIBits, вызовите функцию GetDeviceCaps, указав RC_DI_BITMAP в качестве флага RASTERCAPS.