Структура BITMAPV4HEADER


Структура 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, BITMAPV5HEADERCIEXYZTRIPLE, 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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz