структура BITMAPV4HEADER (wingdi.h)
Структура BITMAPV4HEADER — это файл заголовка сведений о растровом рисунке. Это расширенная версия структуры BITMAPINFOHEADER .
Приложения могут использовать структуру BITMAPV5HEADER для добавления функциональных возможностей.
Синтаксис
typedef struct {
DWORD bV4Size;
LONG bV4Width;
LONG bV4Height;
WORD bV4Planes;
WORD bV4BitCount;
DWORD bV4V4Compression;
DWORD bV4SizeImage;
LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter;
DWORD bV4ClrUsed;
DWORD bV4ClrImportant;
DWORD bV4RedMask;
DWORD bV4GreenMask;
DWORD bV4BlueMask;
DWORD bV4AlphaMask;
DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed;
DWORD bV4GammaGreen;
DWORD bV4GammaBlue;
} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
Члены
bV4Size
Число байтов, необходимых для структуры. Приложения должны использовать этот элемент для определения используемой структуры заголовка сведений о растровом рисунке.
bV4Width
Ширина растрового изображения в пикселях.
Если bV4Compression имеет значение BI_JPEG или BI_PNG, bV4Width указывает ширину изображения JPEG или PNG в пикселях.
bV4Height
Высота растрового изображения в пикселях. Если значение bV4Height положительно, то растровое изображение является diB снизу вверх, а его источником является левый нижний угол. Если значение bV4Height отрицательное, то растровое изображение представляет собой diB сверху вниз, а его источником является левый верхний угол.
Если значение bV4Height отрицательное, указывающее на diB сверху вниз, bV4Compression должно быть либо BI_RGB, либо BI_BITFIELDS. Не удается сжать диаби-файлы сверху вниз.
Если bV4Compression имеет значение BI_JPEG или BI_PNG, bV4Height указывает высоту изображения JPEG или PNG в пикселях.
bV4Planes
Количество плоскостей для целевого устройства. Это значение должно быть равно 1.
bV4BitCount
Число битов на пиксель. Член bV4BitCountструктуры BITMAPV4HEADER определяет количество битов, определяющих каждый пиксель, и максимальное количество цветов на растровом рисунке. Этот элемент должен иметь одно из следующих значений.
Значение | Значение |
---|---|
0 | Число битов на пиксель указывается или подразумевается в формате JPEG или PNG. |
1 | Растровое изображение является монохромным, а член bmiColorsBITMAPINFO содержит две записи. Каждый бит в массиве растровых изображений представляет пиксель. Если бит является ясным, пиксель отображается с цветом первой записи в таблице bmiColors ; Если бит задан, пиксель имеет цвет второй записи в таблице. |
4 | Растровое изображение имеет не более 16 цветов, а член bmiColorsBITMAPINFO содержит до 16 записей. Каждый пиксель на растровом рисунке представлен 4-разрядным индексом в таблице цветов. Например, если первый байт в растровом изображении 0x1F, то байт представляет два пикселя. Первый пиксель содержит цвет во второй записи таблицы, а второй пиксель содержит цвет в шестнадцатой записи таблицы. |
8 | Растровое изображение имеет не более 256 цветов, а член bmiColorsBITMAPINFO содержит до 256 записей. В этом случае каждый байт в массиве представляет один пиксель. |
16 | Растровое изображение имеет не более 2^16 цветов. Если член bV4Compression структуры BITMAPV4HEADER имеет BI_RGB, то член bmiColorsbitmapINFO имеет значение NULL. Каждое слово WORD в массиве растровых изображений представляет один пиксель. Относительная интенсивность красного, зеленого и синего цвета представлена пятью битами для каждого компонента цвета. Значение синего цвета составляет наименее значимые пять битов, за которыми следуют пять битов для зеленого и красного соответственно. Самый значительный бит не используется. Таблица цветов bmiColors используется для оптимизации цветов, используемых на устройствах на основе палитры, и должна содержать количество записей, указанных членом bV4ClrUsedBITMAPV4HEADER. Если член bV4CompressionBITMAPV4HEADER BI_BITFIELDS, то член bmiColors содержит три цветовые маски DWORD , определяющие красный, зеленый и синий компоненты каждого пикселя. Каждое слово WORD в массиве растровых изображений представляет один пиксель. |
24 | Растровое изображение имеет не более 2^24 цветов, а член bmiColorsBITMAPINFO имеет значение NULL. Каждый трехбайтовый триплет в массиве растровых изображений представляет относительную интенсивность синего, зеленого и красного цвета для пикселя. Таблица цветов bmiColors используется для оптимизации цветов, используемых на устройствах на основе палитры, и должна содержать количество записей, указанных членом bV4ClrUsedBITMAPV4HEADER. |
32 | Растровое изображение имеет не более 2^32 цветов. Если элемент bV4CompressionBITMAPV4HEADER имеет значение BI_RGB, то член bmiColorsBITMAPINFO имеет значение NULL. Каждый DWORD в массиве растровых изображений представляет относительную интенсивность синего, зеленого и красного цвета для пикселя. Значение синего цвета составляет наименее значимые 8 бит, за которыми следует 8 битов для зеленого и красного. Высокий байт в каждом DWORD не используется. Таблица цветов bmiColors используется для оптимизации цветов, используемых на устройствах на основе палитры, и должна содержать количество записей, указанных членом bV4ClrUsedBITMAPV4HEADER. Если член bV4CompressionBITMAPV4HEADER BI_BITFIELDS, то член bmiColors содержит три цветовые маски DWORD , определяющие красный, зеленый и синий компоненты каждого пикселя. Каждый параметр DWORD в массиве растровых изображений представляет один пиксель. |
bV4V4Compression
Тип сжатия для сжатого растрового изображения снизу вверх (не удается сжать ДИБ-данные сверху вниз). Этот элемент может быть одним из следующих значений.
Значение | Описание |
---|---|
BI_RGB | Несжатый формат. |
BI_RLE8 | Формат RLE в кодировке (RLE) для растровых изображений с 8 бит/с. Формат сжатия — это 2-байтовый формат, состоящий из числа байтов, за которым следует байт, содержащий индекс цвета. Дополнительные сведения см. в разделе Сжатие растрового рисунка. |
BI_RLE4 | Формат RLE для растровых изображений с 4 бит/с. Формат сжатия — это 2-байтовый формат, состоящий из числа байтов, за которым следуют два цветовых индекса длины слова. Дополнительные сведения см. в разделе Сжатие растрового рисунка. |
BI_BITFIELDS | Указывает, что растровое изображение не сжимается. Члены bV4RedMask, bV4GreenMask и bV4BlueMask указывают красный, зеленый и синий компоненты для каждого пикселя. Это допустимо при использовании с растровыми изображениями 16 и 32 бит/с. |
BI_JPEG | Указывает, что изображение сжимается с использованием формата обмена файлами JPEG. Сжатие JPEG сопоставляет сжатие с потерей; он может достичь коэффициента сжатия 20:1 с небольшими заметными потерями. |
BI_PNG | Указывает, что изображение сжимается с использованием формата обмена файлами PNG. |
bV4SizeImage
Размер изображения (в байтах). Это значение может быть равно нулю для BI_RGB растровых изображений.
Если bV4Compression имеет значение BI_JPEG или BI_PNG, bV4SizeImage — это размер буфера изображений JPEG или PNG.
bV4XPelsPerMeter
Горизонтальное разрешение (в пикселях на метр) целевого устройства для растрового изображения. Приложение может использовать это значение, чтобы выбрать растровое изображение из группы ресурсов, которое лучше всего соответствует характеристикам текущего устройства.
bV4YPelsPerMeter
Вертикальное разрешение (в пикселях на метр) целевого устройства для растрового изображения.
bV4ClrUsed
Число цветовых индексов в таблице цветов, которые фактически используются растровым изображением. Если это значение равно нулю, то растровое изображение использует максимальное количество цветов, соответствующее значению члена bV4BitCount для режима сжатия, заданного параметром bV4Compression.
Если значение bV4ClrUsed не равно нулю, а член bV4BitCount меньше 16, то член bV4ClrUsed указывает фактическое количество цветов, доступных графическому движку или драйверу устройства. Если значение bV4BitCount равно 16 или больше, член bV4ClrUsed указывает размер таблицы цветов, используемой для оптимизации производительности системных цветовых палитр. Если значение bV4BitCount равно 16 или 32, оптимальная цветовая палитра начинается сразу после BITMAPV4HEADER.
bV4ClrImportant
Количество цветовых индексов, необходимых для отображения растрового изображения. Если это значение равно нулю, важны все цвета.
bV4RedMask
Цветовая маска, задающая красный компонент каждого пикселя, допустима, только если bV4Compression имеет значение BI_BITFIELDS.
bV4GreenMask
Цветовая маска, указывающая зеленый компонент каждого пикселя, допустима, только если для bV4Compression задано значение BI_BITFIELDS.
bV4BlueMask
Цветовая маска, указывающая синий компонент каждого пикселя, допустима только в том случае, если для bV4Compression задано значение BI_BITFIELDS.
bV4AlphaMask
Цветовая маска, задающая альфа-компонент каждого пикселя.
bV4CSType
Цветовое пространство DIB. В следующей таблице перечислены значения для bV4CSType.
Значение | Значение |
---|---|
LCS_CALIBRATED_RGB | Это значение указывает, что конечные точки и гамма-значения указаны в соответствующих полях. |
Сведения, определяющие логическое цветовое пространство, см. в разделе Структура LOGCOLORSPACE .
bV4Endpoints
Структура CIEXYZTRIPLE , указывающая координаты x, y и z трех цветов, соответствующих конечным точкам красного, зеленого и синего для логического цветового пространства, связанного с растровым изображением. Этот элемент игнорируется, если только элемент bV4CSType не указывает LCS_CALIBRATED_RGB.
bV4GammaRed
Кривая ответа тона для красного цвета. Этот элемент игнорируется, если только значения цвета не являются откалиброванными значениями RGB, а для bV4CSType задано значение LCS_CALIBRATED_RGB. Укажите в формате 16.16 без знака. Верхние 16 бит являются целочисленным значением без знака. Нижние 16 битов являются дробной частью.
bV4GammaGreen
Кривая ответа тона для зеленого цвета. Используется, если bV4CSType имеет значение LCS_CALIBRATED_RGB. Укажите в формате 16.16 без знака. Верхние 16 бит являются целочисленным значением без знака. Нижние 16 битов являются дробной частью.
bV4GammaBlue
Кривая ответа тона для синего. Используется, если bV4CSType имеет значение LCS_CALIBRATED_RGB. Укажите в формате 16.16 без знака. Верхние 16 бит являются целочисленным значением без знака. Нижние 16 битов являются дробной частью.
Комментарии
Структура BITMAPV4HEADER расширяется, чтобы разрешить передачу изображения JPEG или PNG в качестве исходного изображения в StretchDIBits.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | wingdi.h (включая Windows.h) |