勇芳软件工作室.汉化:  Bitmaps > Bitmap Structures >

BITMAPV5HEADER

Previous pageReturn to chapter overviewNext page

描述

 

BITMAPV5HEADER结构是位图信息头文件。它是BITMAPINFOHEADER结构的扩展版本。

 

Windows 95和Windows NT 4.0:应用程序可以使用BITMAPV4HEADER结构。

 

Windows NT 3.51及更早版本:应用程序应继续使用BITMAPINFOHEADER.

 

C++ 语法

 

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;

 

PowerBASIC 语法

 

TYPE BITMAPV5HEADER

bV5Size AS DWORD

bV5Width AS LONG

bV5Height AS LONG

bV5Planes AS WORD

bV5BitCount AS WORD

bV5Compression AS DWORD

bV5SizeImage AS DWORD

bV5XPelsPerMeter AS LONG

bV5YPelsPerMeter AS LONG

bV5ClrUsed AS DWORD

bV5ClrImportant AS DWORD

bV5RedMask AS DWORD

bV5GreenMask AS DWORD

bV5BlueMask AS DWORD

bV5AlphaMask AS DWORD

bV5CSType AS DWORD

bV5Endpoints AS CIEXYZTRIPLE

bV5GammaRed AS DWORD

bV5GammaGreen AS DWORD

bV5GammaBlue AS DWORD

bV5Intent AS DWORD

bV5ProfileData AS DWORD

bV5ProfileSize AS DWORD

bV5Reserved AS DWORD

END TYPE

 

成员

 

bV5Size

 

指定结构所需的字节数。应用程序应该使用此成员来确定正在使用哪个位图信息头结构。

 

bV5Width

 

指定位图的宽度(以像素为单位)。

 

Windows 98 / Me,Windows 2000 / XP / Vista / Windows 7:如果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

位图是单色的,BITMAPINFObmiColors成员包含两个条目。位图数组中的每一位表示一个像素。如果该位清除,则像素将以bmiColors颜色表中的第一个条目的颜色显示。如果该位被设置,则该像素具有表中第二个条目的颜色。

4

位图最多有16种颜色,bmiColorsBITMAPINFO成员最多包含16个条目。位图中的每个像素由颜色表中的4位索引表示。例如,如果位图中的第一个字节为&H1F,则该字节表示两个像素。第一像素包含第二表条目中的颜色,第二像素包含第十六表条目中的颜色。

8

位图最多有256种颜色,BITMAPINFOBITMAPINFO的成员最多包含256个条目。在这种情况下,阵列中的每个字节表示单个像素。

16

位图最多有2 ^ 16种颜色。如果BITMAPV5HEADER结构的bV5Compression成员为BI_RGB,BITMAPINFOBITMAPINFO成员为NULL。位图数组中的每个WORD表示单个像素。红色,绿色和蓝色的相对强度由每个颜色分量的5位表示。蓝色的值是最低有效的5位,后面是绿色和红色的5位。最高有效位未被使用。bmiColors颜色表用于优化基于调色板的设备上使用的颜色,并且必须包含BITMAPV5HEADERbV5ClrUsed成员指定的条目数。

 

如果BITMAPV5HEADERBITMAPV5HEADERbV5Compression成员是BI_BITFIELDS,则bmiColors成员包含三个DWORD颜色掩码,分别指定每个像素的红色,绿色和蓝色成分。位图数组中的每个WORD表示单个像素。

 

bV5iCompression成员是BI_BITFIELDS时,每个DWORD掩码中设置的位必须是连续的,并且不应与另一个掩码的位重叠。像素中的所有位都不需要使用。

24

位图最多有2 ^ 24种颜色,而bmiColors成员BITMAPINFO为NULL。位图阵列中的每个3字节三元组分别表示像素的蓝色,绿色和红色的相对强度。bmiColors颜色表用于优化基于调色板的设备上使用的颜色,并且必须包含BITMAPV5HEADER结构的bV5ClrUsed成员指定的条目数。

32

位图最多有2 ^ 32种颜色。如果BITMAPV5HEADERBITMAPV5HEADER的成员为BI_RGB,则BITMAPINFOBITMAPINFO的成员为NULL。位图数组中的每个DWORD分别表示像素的蓝色,绿色和红色的相对强度。不使用每个DWORD中的高字节。bmiColors颜色表用于优化基于调色板的设备上使用的颜色,并且必须包含BITMAPV5HEADERbV5ClrUsed成员指定的条目数。

 

如果BITMAPV5HEADERBITMAPV5HEADER成员是BI_BITFIELDS,则bmiColors成员包含三个DWORD颜色蒙版,用于指定每个像素的红色,绿色和蓝色分量。位图数组中的每个DWORD表示单个像素。

 

bV4V5Compression

 

指定位图未压缩。bV5RedMaskbV5GreenMaskbV5BlueMask成员指定每个像素的红色,绿色和蓝色分量。当与16位和32位bbb位图一起使用时,这是有效的。该成员可以是以下值之一。

 

含义

BI_RGB

未压缩的格式。

BI_RLE8

具有8 bpp的位图的行程编码(RLE)格式。压缩格式是一个双字节格式,包括一个计数字节,后跟一个包含颜色索引的字节。如果bV5Compression是BI_RGB,并且bV5BitCount成员是16,24或32,则位图数组指定蓝色,绿色和红色的实际强度,而不是使用颜色表索引。

BI_RLE4

具有4 bpp的位图的RLE格式。压缩格式是一个双字节格式,包括一个计数字节,后跟两个字长颜色索引。

BI_BITFIELDS

指定位图未压缩,颜色表由三个DWORD颜色掩码组成,用于指定每个像素的红色,绿色和蓝色分量。与16位和32位bbb位图一起使用时有效。

BI_JPEG

指定使用JPEG文件交换格式压缩图像。JPEG压缩消除了压缩与损失;它可以实现20:1的压缩比,几乎没有明显的损失。

BI_PNG

指定使用PNG文件交换格式压缩图像。

 

bV5SizeImage

 

指定图像的大小(以字节为单位)。BI_RGB位图可能设置为零。

 

如果bV5Compression为BI_JPEG或BI_PNG,则bV5SizeImage是JPEG或PNG图像缓冲区的大小。 

 

bV5XPelsPerMeter

 

指定位图的目标设备的水平分辨率(以像素/米为单位)。应用程序可以使用该值从与当前设备的特性最匹配的资源组中选择位图。

 

bV5YPelsPerMeter

 

指定位图的目标设备的垂直分辨率(以像素/米为单位)。

 

bV5ClrUsed

 

指定位图实际使用的颜色表中的颜色索引数。如果该值为零,则位图使用与bV5Compression指定的压缩模式的bV5BitCount成员的值对应的最大颜色数。

 

如果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

 

指定每个像素的alpha分量的彩色蒙版。

 

bV5CSType

 

指定DIB的颜色空间。

 

下表指定了bV5CSType的值。

 

含义

LCS_CALIBRATED_RGB

该值表示在适当的字段中给出端点和伽玛值。

LCS_sRGB

指定位图在sRGB颜色空间中。

LCS_WINDOWS_COLOR_SPACE

该值表示位图位于系统默认颜色空间sRGB中。

PROFILE_LINKED

该值表示bV5ProfileData指向要使用的配置文件的文件名(gamma和endpoints值将被忽略)。

PROFILE_EMBEDDED

该值表示bV5ProfileData指向包含要使用配置文件的内存缓冲区(忽略伽玛和端点值)。

 

有关定义逻辑颜色空间的信息,请参阅LOGCOLORSPACE结构。

 

bV5Endpoints

 

一个CIEXYZTRIPLE结构,用于指定与位图相关联的逻辑色彩空间的红色,绿色和蓝色端点对应的三种颜色的x,y和z坐标。除非bV5CSType成员指定LCS_CALIBRATED_RGB,否则此成员将被忽略。

 

bV5GammaRed

 

色调响应曲线为红色。如果bV5CSType设置为LCS_CALIBRATED_RGB,则使用。指定为16 ^ 16格式。

 

bV5GammaGreen

 

色调响应曲线为绿色。如果bV5CSType设置为LCS_CALIBRATED_RGB,则使用。指定为16 ^ 16格式。

 

bV5GammaBlue

 

色调响应曲线为蓝色。如果bV5CSType设置为LCS_CALIBRATED_RGB,则使用。指定为16 ^ 16格式。

 

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允许将国际色彩联盟(ICC)颜色配置文件链接或嵌入到DIB(DIB)中。

 

当DIB加载到内存中时,配置文件数据(如果存在)应该遵循颜色表,并且bV5ProfileData应该从BITMAPV5HEADER结构的开头提供配置文件数据的偏移量。存储在bV5ProfileDate中的值将不同于给定BITMAPV5HEADER参数的sizeof运算符返回的值,因为bV5ProfileData是从BITMAPV5HEADER结构开始到配置文件数据开始的以字节为单位的偏移量。(位图位不遵循内存中的颜色表)。应用程序在将DIB加载到内存后应修改bV5ProfileData成员。

 

对于打包DIB,配置文件数据应遵循与文件格式类似的位图位。bV5ProfileData成员还应该从BITMAPV5HEADER的开头给出配置文件数据的偏移量。

 

只有当bV5Size等于BITMAPV5HEADERbV5CSType等于PROFILE_EMBEDDED或PROFILE_LINKED的大小时,应用程序才能访问配置文件数据。

 

如果配置文件被链接,则配置文件的路径可以是可以使用CreateFile功能打开的任何完全限定名称(包括网络路径)。

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)