Структура BITMAPINFOHEADER содержит информацию о размерах и цветовом формате аппаратно-независимого растрового формата (DIB).
Windows 95, Windows NT 4.0: Приложения могут использовать структуру BITMAPV4HEADER для добавления функциональных возможностей.
Windows 98/Me, Windows 2000/XP: Приложения могут использовать структуру BITMAPV5HEADER для добавления функциональных возможностей. Однако она используется только в функции CreateDIBitmap.
Синтаксис
typedef struct tagBITMAPINFOHEADER{ DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER, *PBITMAPINFOHEADER; |
biSize
Определяет число байтов необходимое для структуры.biWidth
Определяет ширину точечного рисунка, в пикселях.Windows 98/Me, Windows 2000/XP: Если параметр biCompression - BI_JPEG или BI_PNG, член структуры biWidth устанавливает ширину развернутого изображения из файла изображения формата JPEG или PNG , соответственно.
biHeight
Устанавливает высоту точечного рисунка, в пикселях. Если biHeight - положительное значение, точечный рисунок - восходящий аппаратно-независимый растровый формат (DIB), а его начало координат - левый нижний угол. Если biHeight - отрицательное значение, точечный рисунок - нисходящий аппаратно-независимый растровый формат (DIB), а его начало координат - левый верхний угол.
Если biHeight имеет отрицательное значение, которое указывает на нисходящий формат (DIB), параметр biCompression должен быть или BI_RGB или BI_BITFIELDS. Нисходящие растровые форматы (DIB) не могут сжиматься.
Windows 98/Me, Windows 2000/XP: Если biCompression - BI_JPEG или BI_PNG, член структуры biHeight устанавливает высоту развернутого изображения из файла изображения формата JPEG или PNG , соответственно.
biPlanes
Устанавливает число плоскостей целевого устройства. Это значение должно быть установлено в 1.
biBitCount
Устанавливает число битов на пиксель. Член biBitCount структуры BITMAPINFOHEADER обуславливает число битов, которые определяют каждый пиксель и максимальное число цветов в точечном рисунке. Этот член структуры должен быть одним из нижеперечисленных значений.
Значение | Предназначение |
---|---|
0 | Windows 98/Me, Windows 2000/XP: Число битов на пиксель задается или подразумевается форматом изображения PNG или JPEG. |
1 | Точечный рисунок является монохромным, а член bmiColors структуры BITMAPINFO содержит две записи. Каждый бит в растровом массиве представляет пиксель. Если бит сброшен, пиксель отображается цветом первой записи в таблице bmiColors ; если бит установлен, пиксель имеет цвет второй записи в таблице. |
4 | Точечный рисунок имеет максимум 16 цветов, а член bmiColors структуры BITMAPINFO содержит до 16 записей. Каждый пиксель в точечном рисунке представлен 4-битным индексом в таблице цветов. Например, если первый байт в точечном рисунке - 0x1F, он представляет два пикселя. Первый пиксель содержит цвет во второй записи таблицы, а второй пиксель содержит цвет в шестнадцатой записи таблицы. |
8 | Точечный рисунок имеет максимум 256 цветов, а член bmiColors структуры BITMAPINFO содержит до 256 записей. В этом случае, каждый байт в массиве представляет одиночный пиксель. |
16 | Точечный
рисунок имеет максимум 216 цветов.
Если
член biCompression структуры BITMAPINFOHEADER
равен BI_RGB, то член
bmiColors структуры
BITMAPINFO имеет значение ПУСТО (NULL).
Каждое слово (WORD) в массиве точечного
рисунка представляет одиночный
пиксель. Относительные
интенсивности красного, зеленого и
синего цвета представлены с пятью
битами для каждого компонента
цвета. Значение для синего
находится в самых младших пяти битах,
следующие пять битов для каждого
зеленого и красного цвета. Старший
значащий бит не используется.
Таблица цветов bmiColors используется
для того, чтобы оптимизировать цвета,
используемые на устройствах
основной палитры, и должна содержать
число записей, заданных членом biClrUsed
структуры BITMAPINFOHEADER.
Если член biCompression структуры BITMAPINFOHEADER - BI_BITFIELDS, член структуры bmiColors содержит три двойных слова (DWORD) маски цвета , которые, соответственно, определяют красную, зеленую и синюю компоненты каждого пикселя. Каждое слово (WORD) в массиве точечного рисунка представляет одиночный пиксель. Windows NT/Windows 2000/XP: Если член структуры biCompression равен BI_BITFIELDS, то биты установленные в каждом двойном слове (DWORD) маски , должен быть непрерывными и не должны перекрывать биты другой маски. Все биты в пикселе использоваться не должны.Windows 95/98/Me: Если член структуры biCompression равен BI_BITFIELDS, то система поддерживает только ниже следующее 16 битовые (bpp) маски цвета: 5-5-5 16-битовых изображений, где синяя маска - 0x001F, зеленая маска - 0x03E0 и красная маска - 0x7C00; и 5-6-5 16-битовых изображений, где синяя маска - 0x001F, зеленая маска - 0x07E0 и красная маска - 0xF800. |
24 | Точечный рисунок имеет максимум 2 24 цветов, а член bmiColors структуры BITMAPINFO имеет значение ПУСТО (NULL). Каждый 3-байтовый триплет в массиве точечного рисунка представляет относительные интенсивности синего, зеленого и красного цвета, соответственно, для пикселя. Таблица цветов bmiColors используется для того, чтобы оптимизировать цвета, используемые на устройствах основной палитры и должна содержать число записей, определяемых членом biClrUsed структуры BITMAPINFOHEADER. |
32 | Точечный рисунок
имеет максимум 232 цветов. Если член
biCompression структуры BITMAPINFOHEADER равен
BI_RGB, член bmiColors структуры
BITMAPINFO
имеет значение ПУСТО (NULL). Каждое
двойное слово (DWORD) в массиве
точечного рисунка представляет
относительные интенсивности синего,
зеленого и красного цвета,
соответственно, для пикселя. Старший
байт в каждом двойном слове (DWORD) не
используется. Таблица цветов bmiColors
используется для того, чтобы
оптимизировать цвета, используемые
на устройствах основной палитры и
должна содержать число записей,
определяемых членом biClrUsed
структуры BITMAPINFOHEADER. Если член biCompression структуры BITMAPINFOHEADER равен BI_BITFIELDS, член структуры bmiColors содержит три двойных слова (DWORD) маски цвета , которые устанавливают компоненты красного, зеленого и синего цвета, соответственно, каждого пикселя. Каждое двойное слово (DWORD) в массиве точечного рисунка представляет одиночный пиксель. Windows NT/ 2000: Если член структуры biCompression равен BI_BITFIELDS, то биты, установленные в каждом двойном слове (DWORD) маски, должны быть непрерывными и не должны перекрывать биты другой маски. Все биты в пикселе использоваться не должны. Windows 95/98/Me: Если член структуры biCompression равен BI_BITFIELDS, то система поддерживает только ниже следующие 32 битовые (bpp) маски цвета: синяя маска - 0x000000FF, зеленая маска - 0x0000FF00 и красная маска - 0x00FF0000. |
biCompression
Определяет тип сжатия для сжатого идущего снизу вверх точечного рисунка (идущий сверху вниз аппаратно-независимый растровый формат (DIB) не может сжиматься). Этот член структуры может быть одним из нижеперечисленных значений.
Значение | Описание |
---|---|
BI_RGB | Несжимаемый формат. |
BI_RLE8 | Формат с кодированием длины серий (RLE) для точечных рисунков с 8 битами на пиксель (bpp). Этот сжатый формат - 2-байтовый формат, состоящий из байта числа элементов, сопровождаемого байтом, содержащим индекс цвета. Подробную информацию см. в статье Сжатие точечного рисунка. |
BI_RLE4 | RLE формат для точечных рисунков с 4 битами на пиксель (bpp). Этот сжатый формат - 2-байтовый формат, состоящий из байта числа элементов, сопровождаемый двумя индексами цвета длиной в слово (DWORD). Подробную информацию см. в статье Сжатие точечного рисунка. |
BI_BITFIELDS | Определяет, что точечный рисунок не сжат и, что таблица цветов состоит из трех двойных слов (DWORD) маски цвета , которые задают красный , зеленый и синий компоненты цвета, соответственно, для каждого пикселя. Это правильно тогда, когда используются точечные рисунки с 16-и 32 - битами на пиксель (bpp). |
BI_JPEG | Windows 98/Me, Windows 2000/XP: Указывает на то, что изображение имеет формат JPEG. |
BI_PNG | Windows 98/Me, Windows 2000/XP: Указывает на то, что изображение имеет формата PNG. |
biSizeImage
Устанавливает размер изображения, в байтах. Он может быть установлен в нуль для BI_RGB точечных рисунков.
Windows 98/Me, Windows 2000/XP: Если biCompression равен BI_JPEG или BI_PNG, то biSizeImage указывает размер формата изображения JPEG или буфера изображения формата PNG, соответственно.
biXPelsPerMeter
Устанавливает разрешающую способность по вертикали для принимающего устройства точечного рисунка, в пикселях на метр. Приложение может использовать это значение, чтобы выбирать битовый образ из группы ресурсов, который лучше всего соответствует характеристикам текущего устройства.
biYPelsPerMeter
Устанавливает разрешающую способность по вертикали для принимающего устройства точечного рисунка, в пикселях на метр.
biClrUsed
Устанавливает число индексов цвета в таблице цветов, которые фактически используются точечным рисунком. Если это значение равняется нулю, точечный рисунок использует максимальное число цветов, соответствующих значению члена структуры biBitCount для метода сжатия, заданного членом biCompression.
Если biClrUsed не нуль, а член структуры biBitCount - меньше чем 16, член структуры biClrUsed устанавливает фактическое число цветов доступное графической машине или драйверу устройства. Если biBitCount равен 16 или больше, член структуры biClrUsed устанавливает размер используемый таблицей цветов для оптимизации системных цветовых палитр. Если biBitCount равняется 16 или 32, оптимальная цветовая палитра следует непосредственно за тремя двойными словами (DWORD) маски.
Когда массив точечного рисунка следует непосредственно за структурой BITMAPINFO, это - сжатый точечный рисунок. На сжатые битовые образы ссылаются одиночным указателем. Сжатые точечные рисунки требуют, чтобы член структуры biClrUsed был или нулем или фактическим размером таблицы цветов.
biClrImportant
Устанавливает число индексов цвета, которые требуются чтобы показать на экране точечный рисунок. Если это значение равняется нулю, требуются все цвета .
Замечания
Структура BITMAPINFO объединяет структуру BITMAPINFOHEADER и таблицу цветов, чтобы обеспечить детальное определение размеров и цветов аппаратно-независимого растрового формата (DIB). Подробную информацию об аппаратно-независимых растровых форматах (DIB), см. в статьях Не зависящие от устройства точечные рисунки и о структуре BITMAPINFO.
Приложение должно использовать информацию, сохраненную в члене структуры biSize, чтобы определить место таблицы цветов в структуре BITMAPINFO, как указано ниже:
pColor = ((LPSTR)pBitmapInfo + (WORD)(pBitmapInfo->bmiHeader.biSize)); |
Windows 98/Me, Windows 2000/XP: Структура BITMAPINFOHEADER дополнена возможностью передавать как исходное изображение формата JPEG или PNG в функцию StretchDIBits.
Смотри также
Обзор Точечные рисунки, Структуры, используемые точечными рисунками, BITMAPINFO, BITMAPV4HEADER, BITMAPV5HEADER, CreateDIBitmap, StretchDIBits
Размещение и совместимость BITMAPINFOHEADER |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Нет |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |