Структура BITMAPV4HEADER - информационный заголовочный файл точечного рисунка. Это - улучшенная версия структуры BITMAPINFOHEADER.
Windows NT 3.51 и ранее: Приложения должны продолжать использовать BITMAPINFOHEADER.
Windows 98/Me, Windows 2000/XP: Приложения могут использовать структуру 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, *PBITMAPV4HEADER; |
bV4Size
Определяет число байтов необходимых для структуры. Приложения должны использовать этот член структуры, чтобы выяснить, какая информационная заголовочная структура точечного рисунка используется.
bV4Width
Устанавливает ширину точечного рисунка, в пикселях.Windows 98/Me, Windows 2000/XP: Если член bV4Compression равен BI_JPEG или BI_PNG, член структуры bV4Width устанавливает ширину изображения формата JPEG или PNG, в пикселях.
bV4Height
Устанавливает высоту точечного рисунка, в пикселях. Если член структуры bV4Height - положительное значение, точечный рисунок - идущий снизу вверх растровый формат DIB, а начало координат левый нижний угол. Если bV4Height - отрицательное значение, точечный рисунок - идущий сверху вниз аппаратно-независимый растровый формат (DIB), а его начало координат - левый верхний угол.Если bV4Height - отрицательное значение, указывающее, что это нисходящий аппаратно-независимый растровый формат (DIB), член структуры bV4Compression должен быть или BI_RGB, или BI_BITFIELDS. Идущие сверху вниз (нисходящие) аппаратно-независимые растровые форматы (DIB) не могут сжиматься.
Windows 98/Me, Windows 2000/XP: Если bV4Compression равен BI_JPEG или BI_PNG, bV4Height устанавливает высоту изображения формата JPEG или PNG, в пикселях.
bV4Planes
Устанавливает число плоскостей для принимающего устройства. Это значение должен быть установлено в 1.
bV4BitCount
Устанавливает число битов на пиксель. Член bV4BitCount структуры BITMAPV4HEADER обуславливает число битов, которые определяют каждый пиксель и максимальное число цветов в точечном рисунке. Этот член структуры должен быть одним из нижеперечисленных значений.
Значение | Предназначение |
---|---|
0 | Windows 98/Me, Windows 2000/XP: Число битов на пиксель задается или подразумевается форматом файла JPEG или PNG. |
1 | Точечный рисунок является монохромным, а член bmiColors структуры BITMAPINFO содержит две записи. Каждый бит в растровом массиве представляет пиксель. Если бит сброшен, пиксель отображается цветом первой записи в таблице цветов bmiColors ; если бит установлен, пиксель имеет цвет второй записи в таблице. |
4 | Точечный рисунок имеет максимум 16 цветов, а член bmiColors структуры BITMAPINFO содержит до 16 записей. Каждый пиксель в точечном рисунке представлен 4-битным индексом в таблице цветов. Например, если первый байт в точечном рисунке - 0x1F, он представляет два пикселя. Первый пиксель содержит цвет во второй записи таблицы, а второй пиксель содержит цвет в шестнадцатой записи таблицы. |
8 | Точечный рисунок имеет максимум 256 цветов, а член bmiColors структуры BITMAPINFO содержит до 256 записей. В этом случае, каждый байт в массиве представляет одиночный пиксель. |
16 | Точечный
рисунок имеет максимум 216 цветов.
Если
член bV4Compression структуры BITMAPV4HEADER
равен BI_RGB, то член
bmiColors структуры
BITMAPINFO имеет значение ПУСТО (NULL).
Каждое слово (WORD) в массиве точечного
рисунка представляет одиночный
пиксель. Относительные
интенсивности красного, зеленого и
синего цвета представлены пятью
битами для каждого компонента
цвета. Значение для синего
находится в самых младших пяти битах,
следующие пятерки битов
каждая для
зеленого и красного цвета. Старший
значащий бит не используется.
Таблица цветов bmiColors используется
для того, чтобы оптимизировать цвета,
используемые на устройствах
основной палитры, и должна содержать
число записей, заданных членом bV4ClrUsed
структуры BITMAPV4HEADER. Если член bV4Compression структуры BITMAPV4HEADER - BI_BITFIELDS, член структуры bmiColors содержит три двойных слова (DWORD) маски цвета , которые, соответственно, определяют красную, зеленую и синюю компоненты каждого пикселя. Каждое слово (WORD) в массиве точечного рисунка представляет одиночный пиксель. |
24 | Точечный рисунок имеет максимум 224 цветов, а член bmiColors структуры BITMAPINFO имеет значение ПУСТО (NULL). Каждый 3-байтовый триплет в массиве точечного рисунка представляет относительные интенсивности синего, зеленого и красного цвета, соответственно, для пикселя. Таблица цветов bmiColors используется для того, чтобы оптимизировать цвета, используемые на устройствах основной палитры и должна содержать число записей, определяемых членом bV4ClrUsed структуры BITMAPV4HEADER. |
32 | Точечный рисунок
имеет максимум 232 цветов. Если член
bV4Compression структуры BITMAPV4HEADER равен
BI_RGB, член bmiColors структуры
BITMAPINFO
имеет значение ПУСТО (NULL). Каждое
двойное слово (DWORD) в массиве
точечного рисунка представляет
относительную интенсивность синего,
зеленого и красного цвета,
соответственно, для пикселя. Старший
байт в каждом двойном слове (DWORD) не
используется. Таблица цветов bmiColors
используется для того, чтобы
оптимизировать цвета, используемые
на устройствах основной палитры и
должна содержать число записей,
определяемых членом bV4ClrUsed
структуры BITMAPV4HEADER. Если член bV4Compression структуры BITMAPV4HEADER равен BI_BITFIELDS, член структуры bmiColors содержит три двойных слова (DWORD) маски цвета , которые устанавливают компоненты красного, зеленого и синего цвета, соответственно, каждого пикселя. Каждое двойное слово (DWORD) в массиве точечного рисунка представляет одиночный пиксель. |
bV4V4Compression
Определяет тип сжатия для сжатого идущего снизу вверх точечного рисунка (идущий сверху вниз аппаратно-независимый растровый формат (DIB) не может сжиматься). Этот член структуры может быть одним из нижеперечисленных значений.Значение | Предназначение |
---|---|
BI_RGB | Несжимаемый формат. |
BI_RLE8 | Формат с кодированием длины серий (RLE) для точечных рисунков с 8 битами на пиксель (bpp). Этот сжатый формат - 2-байтовый формат, состоящий из байта числа элементов, сопровождаемого байтом, содержащим индекс цвета. Подробную информацию см. в статье Сжатие точечного рисунка. |
BI_RLE4 | RLE формат для точечных рисунков с 4 битами на пиксель (bpp). Этот сжатый формат - 2-байтовый формат, состоящий из байта числа элементов, сопровождаемый двумя индексами цвета длиной в слово (DWORD). Подробную информацию см. в статье Сжатие точечного рисунка. |
BI_BITFIELDS | Определяет, что точечный рисунок не сжат. Члены структуры bV4RedMask, bV4GreenMask и bV4BlueMask задают красный , зеленый и синий компоненты цвета для каждого пикселя. Это правильно тогда, когда используются точечные рисунки с 16-и 32 - битами на пиксель (bpp). |
BI_JPEG | Windows 98/Me, Windows 2000/XP: Устанавливает, что изображение сжимается, используя формат преобразования файла JPEG. Сжатие формата JPEG меняет местом с обычным сжатием, чтобы уйти от потерь; можно достигнуть степени сжатия 20:1 с небольшими малозаметными потерями |
BI_PNG | Windows 98/Me, Windows 2000/XP: Устанавливает, что изображение сжимается, используя формат преобразования файла PNG. |
bV4SizeImage
Определяет размер изображения, в байтах. Параметр может быть установлен в нуль для точечного рисунка с флажком BI_RGB.Windows 98/Me, Windows 2000/XP: Если член структуры 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.Обратите внимание! на то, что цветовое пространство (color space) - это модель для представления цвета численно в понятиях трех или большего числа координат. Например, цветовое пространство RGB обозначает цвета на основе красной, зеленой и синей координаты. |
bV4GammaRed
Настроенная характеристика чувствительности для красного цвета. Этот член структуры игнорируется, если коды цвета не точно определенные значения RGB, а bV4CSType установлен в LCS_CALIBRATED_RGB. Задается в формате 1616 .
bV4GammaGreen
Настроенная характеристика чувствительности для зеленого цвета. Используется, если bV4CSType установлен в LCS_CALIBRATED_RGB. Задается в формате 1616 .
bV4GammaBlue
Настроенная характеристика чувствительности для синего цвета. Используется, если bV4CSType установлен в LCS_CALIBRATED_RGB. Задается в формате 1616.
Замечания
Windows 98/Me, Windows 2000/XP: Структура BITMAPV4HEADER дополнена, чтобы дать возможность изображение формата JPEG или PNG передавать как исходное изображение в функцию StretchDIBits.
Смотри также
Обзор Точечные рисунки, Структуры, используемые точечными рисунками, BITMAPINFO, BITMAPINFOHEADER, BITMAPV5HEADER, CIEXYZTRIPLE, CreateDIBitmap, LOGCOLORSPACE, StretchDIBits
Размещение и совместимость BITMAPV4HEADER |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 4.0 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Нет |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |