描述
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 |
位图是单色的,BITMAPINFO的bmiColors成员包含两个条目。位图数组中的每一位表示一个像素。如果该位清除,则像素将以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成员指定的条目数。
如果BITMAPV5HEADERBITMAPV5HEADER的bV5Compression成员是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成员指定的条目数。
如果BITMAPV5HEADER的BITMAPV5HEADER成员是BI_BITFIELDS,则bmiColors成员包含三个DWORD颜色蒙版,用于指定每个像素的红色,绿色和蓝色分量。位图数组中的每个DWORD表示单个像素。 |
bV4V5Compression
指定位图未压缩。bV5RedMask,bV5GreenMask和bV5BlueMask成员指定每个像素的红色,绿色和蓝色分量。当与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等于BITMAPV5HEADER和bV5CSType等于PROFILE_EMBEDDED或PROFILE_LINKED的大小时,应用程序才能访问配置文件数据。
如果配置文件被链接,则配置文件的路径可以是可以使用CreateFile功能打开的任何完全限定名称(包括网络路径)。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)