Поделиться через


структура 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.

ПримечаниеЦветовое пространство — это модель для представления цвета числовым образом в виде трех или более координат. Например, цветовое пространство 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)

См. также раздел

BITMAPINFO

BITMAPINFOHEADER

BITMAPV5HEADER

Структуры растровых рисунков

Общие сведения о точечных изображениях

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits