Функция 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 |
Нет |
Замечания по платформе |
Не имеется |