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


структура BITMAPV5HEADER (wingdi.h)

Структура BITMAPV5HEADER — это файл заголовка сведений о растровом рисунке. Это расширенная версия структуры BITMAPINFOHEADER .

Синтаксис

typedef struct {
  DWORD        bV5Size;
  LONG         bV5Width;
  LONG         bV5Height;
  WORD         bV5Planes;
  WORD         bV5BitCount;
  DWORD        bV5Compression;
  DWORD        bV5SizeImage;
  LONG         bV5XPelsPerMeter;
  LONG         bV5YPelsPerMeter;
  DWORD        bV5ClrUsed;
  DWORD        bV5ClrImportant;
  DWORD        bV5RedMask;
  DWORD        bV5GreenMask;
  DWORD        bV5BlueMask;
  DWORD        bV5AlphaMask;
  DWORD        bV5CSType;
  CIEXYZTRIPLE bV5Endpoints;
  DWORD        bV5GammaRed;
  DWORD        bV5GammaGreen;
  DWORD        bV5GammaBlue;
  DWORD        bV5Intent;
  DWORD        bV5ProfileData;
  DWORD        bV5ProfileSize;
  DWORD        bV5Reserved;
} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;

Члены

bV5Size

Количество байтов, необходимых для структуры. Приложения должны использовать этот элемент для определения используемой структуры заголовка сведений о растровом рисунке.

bV5Width

Ширина растрового изображения в пикселях.

Если bV5Compression является BI_JPEG или BI_PNG, элемент bV5Width задает ширину распаковаченного изображения JPEG или PNG в пикселях.

bV5Height

Высота растрового изображения в пикселях. Если значение bV5Height является положительным, то растровое изображение представляет собой dib снизу вверх, а его источником является левый нижний угол. Если значение bV5Height отрицательное, то растровое изображение представляет собой dib сверху вниз, а его источником является левый верхний угол.

Если значение bV5Height отрицательное, указывающее на dib сверху вниз, bV5Compression должно быть либо BI_RGB, либо BI_BITFIELDS. Не удается сжать нисхожие dib.

Если bV5Compression является BI_JPEG или BI_PNG, то элемент bV5Height указывает высоту распаковки изображения JPEG или PNG в пикселях.

bV5Planes

Количество плоскостей для целевого устройства. Это значение должно быть равно 1.

bV5BitCount

Количество битов, определяющих каждый пиксель, и максимальное количество цветов на растровом рисунке.

Этот элемент может иметь одно из следующих значений.

Значение Значение
0 Число битов на пиксель указывается или подразумевается в формате JPEG или PNG.
1 Растровое изображение является монохромным, а член bmiColorsBITMAPINFO содержит две записи. Каждый бит в массиве растровых изображений представляет пиксель. Если бит является ясным, пиксель отображается с цветом первой записи в таблице цветов bmiColors . Если бит задан, пиксель имеет цвет второй записи в таблице.
4 Растровое изображение имеет не более 16 цветов, а элемент bmiColorsbitMAPINFO содержит до 16 записей. Каждый пиксель на растровом рисунке представлен 4-разрядным индексом в таблице цветов. Например, если первый байт в растровом изображении является 0x1F, то байт представляет два пикселя. Первый пиксель содержит цвет во второй записи таблицы, а второй пиксель содержит цвет в шестнадцатой записи таблицы.
8 Растровое изображение имеет не более 256 цветов, а член bmiColorsbitMAPINFO содержит до 256 записей. В этом случае каждый байт в массиве представляет один пиксель.
16 Растровое изображение имеет не более 2^16 цветов. Если элемент bV5Compression структуры BITMAPV5HEADER является BI_RGB, то элемент bmiColorsв BITMAPINFO имеет значение NULL. Каждое слово WORD в массиве растровых рисунков представляет один пиксель. Относительная интенсивность красного, зеленого и синего цветов представлена пятью битами для каждого компонента цвета. Значение для синего цвета находится в наименее значимых пяти битах, за которыми следуют по пять битов для зеленого и красного. Самый значительный бит не используется. Таблица цветов bmiColors используется для оптимизации цветов, используемых на устройствах на основе палитры, и должна содержать количество записей, указанных членом bV5ClrUsedBITMAPV5HEADER. Если элемент bV5CompressionBITMAPV5HEADER BI_BITFIELDS, то элемент bmiColors содержит три цветовые маски DWORD , указывающие красный, зеленый и синий компоненты каждого пикселя соответственно. Каждое слово WORD в массиве растровых рисунков представляет один пиксель.

Если член bV5Compression BI_BITFIELDS, биты, заданные в каждой маске DWORD , должны быть смежными и не должны перекрывать биты другой маски. Все биты в пикселях не нужно использовать.

24 Растровое изображение имеет не более 2^24 цветов, а член bmiColorsbitMAPINFO имеет значение NULL. Каждый 3-байтовый триплет в массиве растровых изображений представляет относительную интенсивность синего, зеленого и красного соответственно для пикселя. Таблица цветов bmiColors используется для оптимизации цветов, используемых на устройствах на основе палитры, и должна содержать количество записей, указанных элементом bV5ClrUsedструктуры BITMAPV5HEADER .
32 Растровое изображение имеет не более 2^32 цветов. Если элемент bV5CompressionBITMAPV5HEADER BI_RGB, то элемент bmiColorsbitMAPINFO имеет значение NULL. Каждый параметр DWORD в массиве точечных рисунков представляет относительную интенсивность синего, зеленого и красного цвета для пикселя. Значение для синего цвета находится в наименее значимых 8 битах, за которыми следуют по 8 битов для зеленого и красного. Высокий байт в каждом DWORD не используется. Таблица цветов bmiColors используется для оптимизации цветов, используемых на устройствах на основе палитры, и должна содержать количество записей, указанных членом bV5ClrUsedBITMAPV5HEADER. Если элемент bV5CompressionBITMAPV5HEADER BI_BITFIELDS, то элемент bmiColors содержит три цветовые маски DWORD , которые указывают красный, зеленый и синий компоненты каждого пикселя. Каждый DWORD в массиве растровых рисунков представляет один пиксель.

bV5Compression

Указывает, что растровое изображение не сжимается. Члены bV5RedMask, bV5GreenMask и bV5BlueMask указывают красный, зеленый и синий компоненты каждого пикселя. Это допустимо при использовании с растровыми изображениями 16 и 32 бит/с. Этот элемент может иметь одно из следующих значений.

Значение Значение
BI_RGB Несжатый формат.
BI_RLE8 Формат RLE в кодировке (RLE) для растровых изображений с 8 бит/с. Формат сжатия — это двухбайтовый формат, состоящий из числа байтов, за которым следует байт, содержащий индекс цвета. Если bV5Compression имеет значение BI_RGB, а член bV5BitCount равен 16, 24 или 32, то массив растровых изображений указывает фактическую интенсивность синего, зеленого и красного, а не использует индексы таблицы цветов. Дополнительные сведения см. в разделе Сжатие растровых рисунков.
BI_RLE4 Формат RLE для растровых изображений с 4 бит/с. Формат сжатия — это двухбайтовый формат, состоящий из числа байтов, за которым следуют два индекса цвета длины слова. Дополнительные сведения см. в разделе Сжатие растровых рисунков.
BI_BITFIELDS Указывает, что растровое изображение не сжимается и что цветовые маски для компонентов красного, зеленого и синего пикселей указаны в элементах bV5RedMask, bV5GreenMask и bV5BlueMask . Это допустимо при использовании с растровыми изображениями 16 и 32 бит/с.
BI_JPEG Указывает, что изображение сжимается с помощью формата обмена JPEG-файлами. Сжатие JPEG сопоставляет сжатие с потерей; он может достичь коэффициента сжатия 20:1 с небольшими заметными потерями.
BI_PNG Указывает, что изображение сжимается с помощью формата обмена PNG-файлами.

bV5SizeImage

Размер изображения в байтах. Для BI_RGB точечных изображений может быть задано значение 0.

Если bV5Compression BI_JPEG или BI_PNG, то bV5SizeImage — это размер буфера изображений JPEG или PNG.

bV5XPelsPerMeter

Горизонтальное разрешение целевого устройства для растрового изображения (в пикселях на метр). Приложение может использовать это значение для выбора растрового изображения из группы ресурсов, которое наилучшим образом соответствует характеристикам текущего устройства.

bV5YPelsPerMeter

Вертикальное разрешение целевого устройства для растрового изображения (в пикселях на метр).

bV5ClrUsed

Количество цветовых индексов в таблице цветов, которые фактически используются растровым рисунком. Если это значение равно нулю, то растровое изображение использует максимальное количество цветов, соответствующее значению члена bV5BitCount для режима сжатия, заданного параметром bV5Compression.

Если значение bV5ClrUsed не равно нулю, а значение bV5BitCount меньше 16, член bV5ClrUsed указывает фактическое количество цветов, к которых обращается графический обработчик или драйвер устройства. Если значение bV5BitCount равно 16 или больше, член bV5ClrUsed указывает размер таблицы цветов, используемой для оптимизации производительности системных цветовых палитр. Если значение bV5BitCount равно 16 или 32, оптимальная цветовая палитра начинается сразу после BITMAPV5HEADER. Если параметр bV5ClrUsed не равен нулю, таблица цветов используется на палеттизированных устройствах, а bV5ClrUsed указывает количество записей.

bV5ClrImportant

Количество цветовых индексов, необходимых для отображения растрового изображения. Если это значение равно нулю, требуются все цвета.

bV5RedMask

Цветовая маска, задающая красный компонент каждого пикселя, допустима, только если bV5Compression имеет значение BI_BITFIELDS.

bV5GreenMask

Цветовая маска, задающая зеленый компонент каждого пикселя, допустима, только если для bV5Compression задано значение BI_BITFIELDS.

bV5BlueMask

Цветовая маска, указывающая синий компонент каждого пикселя, допустима, только если для bV5Compression задано значение BI_BITFIELDS.

bV5AlphaMask

Цветовая маска, задающая альфа-компонент каждого пикселя.

bV5CSType

Цветовое пространство DIB.

В следующей таблице указаны значения для bV5CSType.

Значение Значение
LCS_CALIBRATED_RGB Это значение подразумевает, что конечные точки и гамма-значения задаются в соответствующих полях.
LCS_sRGB Указывает, что растровое изображение находится в цветовом пространстве sRGB.
LCS_WINDOWS_COLOR_SPACE Это значение указывает, что растровое изображение находится в системном цветовом пространстве по умолчанию sRGB.
PROFILE_LINKED Это значение указывает, что bV5ProfileData указывает на имя файла профиля для использования (значения гамма и конечные точки игнорируются).
PROFILE_EMBEDDED Это значение указывает, что bV5ProfileData указывает на буфер памяти, содержащий профиль для использования (значения гамма и конечные точки игнорируются).
 

Сведения, определяющие логическое цветовое пространство, см. в разделе Структура LOGCOLORSPACE .

bV5Endpoints

Структура CIEXYZTRIPLE , указывающая координаты x, y и z трех цветов, соответствующих красным, зеленым и синим конечным точкам для логического цветового пространства, связанного с растровым рисунком. Этот элемент игнорируется, если только член bV5CSType не указывает LCS_CALIBRATED_RGB.

bV5GammaRed

Тонированная кривая ответа для красного цвета. Используется, если bV5CSType имеет значение LCS_CALIBRATED_RGB. Укажите в формате 16.16 без знака. Верхние 16 бит являются целочисленным значением без знака. Нижние 16 битов являются дробной частью.

bV5GammaGreen

Тонированная кривая ответа для зеленого цвета. Используется, если bV5CSType имеет значение LCS_CALIBRATED_RGB. Укажите в формате 16.16 без знака. Верхние 16 бит являются целочисленным значением без знака. Нижние 16 битов являются дробной частью.

bV5GammaBlue

Тонированная кривая ответа для синего. Используется, если bV5CSType имеет значение LCS_CALIBRATED_RGB. Укажите в формате 16.16 без знака. Верхние 16 бит являются целочисленным значением без знака. Нижние 16 битов являются дробной частью.

bV5Intent

Намерение отрисовки для растрового изображения. Это может быть одно из следующих значений.

Значение Блокировка с намерением Имя ICC Значение
LCS_GM_ABS_COLORIMETRIC Соответствие Абсолютная колориметрика Сохраняет белую точку. Сопоставляет цвета с ближайшим цветом в целевой гамме.
LCS_GM_BUSINESS GRAPHIC Насыщенность Поддерживает насыщенность. Используется для бизнес-диаграмм и других ситуаций, в которых требуются неясные цвета.
LCS_GM_GRAPHICS Подтверждение Относительная колориметрика Поддерживает колориметрическое соответствие. Используется для графических макетов и именованных цветов.
LCS_GM_IMAGES Picture Восприятия Поддерживает контрастность. Используется для фотографий и естественных изображений.

bV5ProfileData

Смещение (в байтах) от начала структуры BITMAPV5HEADER до начала данных профиля. Если профиль внедрен, данные профиля являются фактическим профилем и связаны. (Данные профиля — это имя файла профиля с пустым завершением.) Это не может быть строка в Юникоде. Он должен состоять исключительно из символов из набора символов Windows (кодовая страница 1252). Эти элементы профиля игнорируются, если только член bV5CSType не указывает PROFILE_LINKED или PROFILE_EMBEDDED.

bV5ProfileSize

Размер внедренных данных профиля (в байтах).

bV5Reserved

Этот элемент зарезервирован. Его значение должно быть равно нулю.

Комментарии

Если значение bV5Height отрицательное, указывающее на diB сверху вниз, bV5Compression должно быть либо BI_RGB, либо BI_BITFIELDS. Не удается сжать диаби-файлы сверху вниз.

Независимый интерфейс управления цветом (ICM) 2.0 позволяет связывать или внедрять цветовые профили Международного консорциума цветов (ICC) в DIB (DIB). Дополнительные сведения см. в разделе Использование структур .

Когда DIB загружается в память, данные профиля (если они есть) должны соответствовать таблице цветов, а bV5ProfileData должен обеспечивать смещение данных профиля от начала структуры BITMAPV5HEADER . Значение, хранящееся в bV5ProfileData , будет отличаться от значения, возвращаемого оператором sizeof с учетом аргумента BITMAPV5HEADER , так как bV5ProfileData — это смещение в байтах от начала структуры BITMAPV5HEADER до начала данных профиля. (Битовые биты не следуют за таблицей цветов в памяти.) Приложения должны изменить член bV5ProfileData после загрузки DIB в память.

Для упакованных DIB данные профиля должны соответствовать битовой диаграмме, аналогичной формату файла. Член bV5ProfileData по-прежнему должен давать смещение данных профиля от начала BITMAPV5HEADER.

Приложения должны обращаться к данным профиля, только если bV5Size равен размеру BITMAPV5HEADER , а bV5CSType — PROFILE_EMBEDDED или PROFILE_LINKED.

Если профиль связан, путь к профилю может быть любым полным именем (включая сетевой путь), который можно открыть с помощью функции CreateFile .

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть wingdi.h (включая Windows.h)

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

BITMAPINFO

BITMAPINFOHEADER

BITMAPV4HEADER

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

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

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits