Структура BITMAPV5HEADER


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

Windows 95 and Windows NT 4.0: Приложения могут использовать структуру BITMAPV4HEADER.

Windows NT 3.51 and earlier: Приложения должны продолжать использовать структуру 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, *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 Точечный рисунок является монохромным, а член bmiColors  структуры BITMAPINFO содержит две записи. Каждый бит в растровом массиве представляет пиксель. Если бит сброшен, пиксель отображается цветом первой записи в таблице цветов bmiColors. Если бит установлен, пиксель имеет цвет второй записи в таблице.
4 Точечный рисунок имеет максимум 16 цветов, а член  bmiColors структуры BITMAPINFO содержит до 16 записей. Каждый пиксель в точечном рисунке представлен 4-битным индексом в таблице цветов. Например, если первый байт в точечном рисунке - 0x1F, он представляет два пикселя. Первый пиксель содержит цвет во второй записи таблицы, а второй пиксель содержит цвет в шестнадцатой записи таблицы.
8 Точечный рисунок имеет максимум 256 цветов, а член  bmiColors структуры BITMAPINFO содержит до 256 записей. В этом случае, каждый байт в массиве представляет одиночный пиксель.
16 Точечный рисунок имеет максимум 216 цветов. Если член bV5Compression  структуры BITMAPV5HEADER равен BI_RGB, то член bmiColors  структуры BITMAPINFO имеет значение ПУСТО (NULL). Каждое слово (WORD) в массиве точечного рисунка представляет одиночный пиксель. Относительные интенсивности красного, зеленого и синего цвета представлены пятью битами для каждого компонента цвета. Значение для синего находится в самых младших пяти битах, следующие пятерки  битов  каждая для  зеленого и красного цвета. Старший значащий бит не используется. Таблица цветов bmiColors используется для того, чтобы оптимизировать цвета, используемые на устройствах основной палитры, и должна содержать число записей, заданных членом bV5ClrUsed  структуры BITMAPV5HEADER.

Если член bV5Compression  структуры BITMAPV5HEADER - BI_BITFIELDS, член структуры bmiColors содержит  три двойных слова (DWORD) маски цвета , которые, соответственно, определяют красную, зеленую и синюю компоненты  каждого пикселя. Каждое слово (WORD) в массиве точечного рисунка представляет одиночный пиксель.

Если член структуры bV5iCompression - BI_BITFIELDS, биты, установленные в каждом двойном слове (DWORD) маски, должны следовать друг за другом и не должны перекрывать биты другой маски. Использовать все биты в пикселе нет необходимости.

24 Точечный рисунок имеет максимум 224 цветов, а член bmiColors структуры BITMAPINFO имеет значение ПУСТО (NULL). Каждый 3-байтовый триплет в массиве точечного рисунка представляет относительные интенсивности синего, зеленого и красного цвета, соответственно, для пикселя. Таблица цветов bmiColors  используется для того, чтобы оптимизировать цвета, используемые на устройствах основной палитры и должна содержать число записей, определяемых членом bV5ClrUsed  структуры BITMAPV5HEADER.
32 Точечный рисунок имеет максимум 232 цветов. Если член bV5Compression  структуры BITMAPV5HEADER равен BI_RGB, член bmiColors  структуры BITMAPINFO имеет значение ПУСТО (NULL). Каждое двойное слово (DWORD) в массиве точечного рисунка представляет относительную интенсивность синего, зеленого и красного цвета, соответственно, для пикселя. Старший байт в каждом двойном слове (DWORD) не используется. Таблица цветов bmiColors  используется для того, чтобы оптимизировать цвета, используемые на устройствах основной палитры и должна содержать число записей, определяемых членом bV5ClrUsed  структуры BITMAPV5HEADER.

Если член bV5Compression  структуры BITMAPV4HEADER равен BI_BITFIELDS, член структуры bmiColors содержит три двойных слова (DWORD) маски цвета , которые устанавливают компоненты красного, зеленого и синего цвета, соответственно, каждого пикселя. Каждое двойное слово (DWORD) в массиве точечного рисунка представляет одиночный пиксель.

 

bV5Compression

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

Примечание переводчика: определение этого члена структуры несколько странное, поскольку оно не вписывается в общую логику как подобных структур, так и в само наименование члена. Проверка соответствия текста определения, с которого был перевод, с исходным текстом на сайте www.msdn.microsoft.com показала сходство слово в слово. Предполагаю, что здесь вкралась ошибка и речь идет о типах сжатия битового образа.

В качестве подтверждения этого предположения смотри определение члена структуры bV5ClrUsed

 

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

bV5SizeImage

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

Если член структуры 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. Задается в формате 1616.

bV5GammaGreen

Настроенная характеристика чувствительности для зеленого цвета. Используется, если член структуры  bV5CSType установлен в LCS_CALIBRATED_RGB. Задается в формате 1616.

bV5GammaBlue

Настроенная характеристика чувствительности для синего цвета. Используется, если член структуры  bV5CSType установлен в LCS_CALIBRATED_RGB. Задается в формате 1616.

bV5Intent

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

Значение Цель Имя ICC Предназначение
LCS_GM_ABS_COLORIMETRIC Эквивалент Абсолютный колориметрический Сохраняет белую точку. Соответствует цветам близким к их чистому цвету в принимающей гамме
LCS_GM_BUSINESS Графики Насыщенный Сохраняет насыщенность. Используется для деловых диаграмм и других ситуаций в которой требуются не размытые цвета. 
LCS_GM_GRAPHICS Пробное изображение Относительный колориметрический Сохраняет колориметрическое соответствие. Используется для эскизных проектов и именованных цветов.
LCS_GM_IMAGES Рисунок Определяющий восприятие Сохраняет контраст. Используется для фотографий и естественных  изображений.
 

bV5ProfileData

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

bV5ProfileSize

Размер встроенных данных конфигурации, в байтах.

bV5Reserved

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

Замечания

Если bV5Height - отрицательное значение, которое указывает, что это идущий сверху вниз аппаратно-независимый растровый формат (DIB), то bV5Compression должен быть или BI_RGB или BI_BITFIELDS. Идущие сверху вниз(нисходящие) аппаратно-независимые растровые форматы (DIB) нельзя сжимать.

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

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

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

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

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

Смотри также 

Обзор Точечные рисунки, Структуры, используемые точечными рисунками, BITMAPINFO, BITMAPINFOHEADER, BITMAPV4HEADERCIEXYZTRIPLE, CreateDIBitmap LOGCOLORSPACE, StretchDIBits

Размещение и совместимость BITMAPV5HEADER

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Нет

Windows Me

Да

Windows 98

Да

Windows 95

Нет

Используемая библиотека

Нет

Заголовочный файл

 

- объявлено в

Wingdi.h

- включено в

Windows.h

Unicode

Нет

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

Не имеется

 

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

Hosted by uCoz