Функция CreateDIBitmap


Функция CreateDIBitmap создает совместимый аппаратно-зависимый точечный рисунок (DDB) из аппаратно-независимого битового образа (DIB) и, необязательно, определяет биты рисунка.

Синтаксис

HBITMAP CreateDIBitmap(
  HDC hdc,                        // дескриптор  DC
  CONST BITMAPINFOHEADER *lpbmih, // данные точечного рисунка
  DWORD fdwInit,                  // параметры инициализации
  CONST VOID *lpbInit,            // данные инициализации
  CONST BITMAPINFO *lpbmi,        // данные цветового формата
  UINT fuUsage                    // использованные данные о цвете
);

Параметры

hdc

[in] Дескриптор контекста устройства.

lpbmih

[in] Указатель на структуру содержащую информацию о заголовке точечного рисунка, которая может быть одной из  показанных в  таблице ниже.
Операционная система Информация о заголовке точечного рисунка
Windows NT 3.51 и раньше BITMAPINFOHEADER
Windows 95 и Windows NT 4.0 BITMAPV4HEADER
Windows 98/Me и Windows 2000 BITMAPV5HEADER
 

Если параметр fdwInit равен CBM_INIT, функция использует растровую информационную заголовочную структуру, чтобы получить требуемую ширину и высоту точечного рисунка так же как другой информации. 

Обратите внимание! на то, что положительное значение для высоты обозначает восходящую аппаратно-независимую точечную картинку (DIB), в то время как отрицательное значение для высоты обозначает нисходящую аппаратно-независимую точечную картинку (DIB). Вызов функции CreateDIBitmap с параметром fdwInit равным CBM_INIT эквивалентен вызову функции CreateCompatibleBitmap, который создает аппаратно-зависимую точечную картинку (DDB) в формате устройства, а затем вызывает функцию SetDIBits, чтобы преобразовать биты формата DIB в формат DDB.

fdwInit

[in] Определяет, как система инициализирует растровые биты. Задаются значения следующие ниже.
Значение Предназначение
CBM_INIT Если этот флажок установлен, чтобы инициализировать растровые биты система использует данные, на которые указывают параметры lpbInit и lpbmi.

Если этот флажок сброшен, данные, на которые указывают эти параметры не используются.

 

Если fdwInit равняется нулю, система не инициализирует растровые биты.

lpbInit

[in] Указатель на массив байтов, содержащих исходные растровые данные. Формат данных зависит от члена biBitCount структуры BITMAPINFO, на которую указывает параметр lpbmi.

lpbmi

[in] Указатель на структуру BITMAPINFO, описывающую размеры и цветовой формат массива, на который указывает параметр lpbInit .

fuUsage

[in] Определяет, был ли член bmiColors структуры BITMAPINFO инициализирован и, если это так, содержит ли bmiColors явно красного , зеленого, синего значения (RGB) или индексы палитры. Параметр fuUsage  должен быть одним из нижеперечисленных значений.
 
Значение Предназначение
DIB_PAL_COLORS Таблица цветов предусматривается и состоит из массива 16-битовых индексов в логической палитре контекста устройства, в который должен выбираться точечный рисунок.
DIB_RGB_COLORS Таблица цветов предусматривается и содержит точные значения RGB.
 

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - дескриптор совместимого точечного рисунка.

Если функция завершается с ошибкой, возвращаемое значение - ПУСТО (NULL).

Windows NT/2000/XP: Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.

Замечания

Аппаратно-зависимый точечный рисунок (DDB), который создается,  должен быть без определенной битовой глубины цвета вашего применяемого контекста устройства (DC). Чтобы создавать точечный рисунок, который имеет другую битовую глубину цвета, используйте функцию CreateDIBSection.

Чтобы достичь оптимальной  скорости рисования растра устройством, установите параметр fdwInit в значение CBM_INIT. Затем используйте тот же самый разрядность цвета формата DIB  как видео режим. Когда видеоизображение выполняется в режиме 4- или 8- бит на пиксель (bpp), используйте флажок DIB_PAL_COLORS.

Флажок CBM_CREATDIB для параметра fdwInit  больше не поддерживается.

Когда вам больше не нужен точечный рисунок, вызовите функцию DeleteObject, чтобы удалить его.

ICM: Управление цветом не выполняется. Соответственно содержание результирующего точечного рисунка, после того, как он создался, является не цветным.

Windows 95/98/Me: Созданный точечный рисунок по величине не может быть больше 16 МБ. 

Смотри также 

Обзор Точечные рисунки, Функции, используемые точечными рисунками,   BITMAPINFOHEADER, BITMAPINFO, CreateCompatibleBitmap, CreateDIBSection, DeleteObject, GetDeviceCaps, GetSystemPaletteEntries, SelectObject, SetDIBits  

Размещение и совместимость CreateDIBitmap

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Gdi32.lib

Заголовочный файл

 

- объявлено в

Wingdi.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz