wingdi.h) (BITMAPV5HEADER 结构
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。 无法压缩自上而下的 DDB。
如果 bV5Compression BI_JPEG或BI_PNG, bV5Height 成员将指定解压缩的 JPEG 或 PNG 图像的高度(以像素为单位)。
bV5Planes
目标设备的平面数。 此值必须设置为 1。
bV5BitCount
定义每个像素的位数以及位图中颜色的最大数目。
此成员可以是以下值之一。
值 | 含义 |
---|---|
0 | JPEG 或 PNG 文件格式指定或隐含每像素的位数。 |
1 | 位图是单色的,BITMAPINFO 的 bmiColors 成员包含两个条目。 位图数组中的每个位表示一个像素。 如果位为清除位,则以 bmiColors 颜色表中第一个条目的颜色显示像素。 如果设置了位,则像素具有表中第二个条目的颜色。 |
4 | 位图最多包含 16 种颜色,BITMAPINFO 的 bmiColors 成员最多包含 16 个条目。 位图中的每个像素都由颜色表中的 4 位索引表示。 例如,如果位图中的第一个字节0x1F,则字节表示两个像素。 第一个像素包含第二个表条目中的颜色,第二个像素包含第十六个表条目中的颜色。 |
8 | 位图最多包含 256 种颜色,BITMAPINFO 的 bmiColors 成员最多包含 256 个条目。 在这种情况下,数组中的每个字节表示单个像素。 |
16 | 位图最多有 2^16 种颜色。 如果 BITMAPV5HEADER 结构的 bV5Compression 成员BI_RGB,则 BITMAPINFO 的 bmiColors 成员为 NULL。 位图数组中的每个 WORD 都表示单个像素。 红色、绿色和蓝色的相对强度用每个颜色分量五位表示。 蓝色的值在最低有效位的 5 位中,然后是绿色和红色的 5 位。 不使用最高有效位。
bmiColors 颜色表用于优化基于调色板的设备上使用的颜色,并且必须包含BITMAPV5HEADER的 bV5ClrUsed 成员指定的条目数。如果BITMAPV5HEADER的 bV5Compression 成员BI_BITFIELDS,则 bmiColors 成员包含三个 DWORD 颜色掩码,分别指定每个像素的红色、绿色和蓝色分量。 位图数组中的每个 WORD 都表示单个像素。
当 bV5Compression 成员BI_BITFIELDS时,每个 DWORD 掩码中设置的位必须是连续的,并且不应与另一个掩码的位重叠。 不需要使用像素中的所有位。 |
24 | 位图最多包含 2^24 种颜色,BITMAPINFO 的 bmiColors 成员为 NULL。 位图数组中的每个 3 字节三元元素分别表示像素的蓝色、绿色和红色的相对强度。 bmiColors 颜色表用于优化基于调色板的设备上使用的颜色,并且必须包含由 BITMAPV5HEADER 结构的 bV5ClrUsed 成员指定的条目数。 |
32 | 位图最多有 2^32 种颜色。 如果BITMAPV5HEADER的 bV5Compression 成员BI_RGB,则 BITMAPINFO 的 bmiColors 成员为 NULL。 位图数组中的每个 DWORD 表示一个像素的蓝色、绿色和红色的相对强度。 蓝色的值在最小有效 8 位中,然后是绿色和红色的 8 位。 不使用每个 DWORD 中的高字节。 bmiColors 颜色表用于优化基于调色板的设备上使用的颜色,并且必须包含BITMAPV5HEADER的 bV5ClrUsed 成员指定的条目数。如果BITMAPV5HEADER的 bV5Compression 成员BI_BITFIELDS,则 bmiColors 成员包含三个 DWORD 颜色掩码,这些掩码指定每个像素的红色、绿色和蓝色分量。 位图数组中的每个 DWORD 都表示单个像素。 |
bV5Compression
指定不压缩位图。 bV5RedMask、bV5GreenMask 和 bV5BlueMask 成员指定每个像素的红色、绿色和蓝色分量。 这在使用 16 和 32-bpp 位图时有效。 此成员可以是以下值之一。
值 | 含义 |
---|---|
BI_RGB | 未压缩格式。 |
BI_RLE8 | 8 bpp 位图的运行长度编码 (RLE) 格式。 压缩格式是一种双字节格式,由计数字节后跟包含颜色索引的字节组成。 如果 bV5Compression BI_RGB并且 bV5BitCount 成员为 16、24 或 32,则位图数组指定蓝色、绿色和红色的实际强度,而不是使用颜色表索引。 有关详细信息,请参阅 位图压缩。 |
BI_RLE4 | 具有 4 bpp 的位图的 RLE 格式。 压缩格式是一种双字节格式,由后跟两个字长度颜色索引的计数字节组成。 有关详细信息,请参阅 位图压缩。 |
BI_BITFIELDS | 指定位图未压缩,并且每个像素的红色、绿色和蓝色分量的颜色掩码在 bV5RedMask、bV5GreenMask 和 bV5BlueMask 成员中指定。 这在使用 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
位图实际使用的颜色表中的颜色索引数。 如果此值为零,则位图使用与 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,终结点值将被忽略) 。 |
PROFILE_EMBEDDED | 此值指示 bV5ProfileData 指向包含要 (gamma 使用的配置文件的内存缓冲区,终结点值) 忽略。 |
有关定义逻辑颜色空间的信息,请参阅 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
位图的呈现意向。 这可以是以下值之一。
“值” | Intent | ICC 名称 | 含义 |
---|---|---|---|
LCS_GM_ABS_COLORIMETRIC | 匹配 | 绝对色度 | 保持白点。 将颜色与目标色域中最接近的颜色匹配。 |
LCS_GM_BUSINESS | Graphic | 饱和度 | 保持饱和。 用于业务图表和需要非抖变颜色的其他情况。 |
LCS_GM_GRAPHICS | Proof | 相对色度 | 维护比色匹配。 用于图形设计和命名颜色。 |
LCS_GM_IMAGES | 图片 | 感性 | 保持对比度。 用于照片和自然图像。 |
bV5ProfileData
从 BITMAPV5HEADER 结构开头到配置文件数据开头的偏移量(以字节为单位)。 如果嵌入配置文件,则配置文件数据是实际配置文件,并且是链接的。 (配置文件数据是配置文件的以 null 结尾的文件名。) 这不能是 Unicode 字符串。 它必须完全由 Windows 字符集 (代码页 1252) 中的字符组成。 除非 bV5CSType 成员指定PROFILE_LINKED或PROFILE_EMBEDDED,否则将忽略这些配置文件成员。
bV5ProfileSize
嵌入配置文件数据的大小(以字节为单位)。
bV5Reserved
此成员已被保留。 其值应设置为零。
注解
如果 bV5Height 为负值,则指示自上而下 DIB, 则 bV5Compression 必须是BI_RGB或BI_BITFIELDS。 无法压缩自上而下的 DDB。
ICM) 2.0 (独立颜色管理接口允许国际颜色联盟 (ICC) 颜色配置文件链接或嵌入到 DIB) (DIB 中。 有关详细信息 ,请参阅使用结构 。
将 DIB 加载到内存中时, (配置文件数据(如果存在) )应遵循颜色表, bV5ProfileData 应提供配置文件数据从 BITMAPV5HEADER 结构开头的偏移量。 在给定BITMAPV5HEADER参数的情况下,存储在 bV5ProfileData 中的值将不同于 sizeof 运算符返回的值,因为 bV5ProfileData 是从BITMAPV5HEADER结构开头到配置文件数据开头的字节偏移量。 (位位不遵循内存) 的颜色表。 将 DIB 加载到内存后,应用程序应修改 bV5ProfileData 成员。
对于打包的 DIB,配置文件数据应遵循类似于文件格式的位图位。 bV5ProfileData 成员仍应提供从BITMAPV5HEADER开头开始的配置文件数据的偏移量。
仅当 bV5Size 等于 BITMAPV5HEADER 大小且 bV5CSType 等于 PROFILE_EMBEDDED 或 PROFILE_LINKED 时,应用程序才应访问配置文件数据。
如果已链接配置文件,则配置文件的路径可以是任何完全限定的名称 (包括可以使用 CreateFile 函数打开的网络路径) 。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | wingdi.h (包括 Windows.h) |