BITMAPCOREINFO

【勇芳软件工作室】汉化HomePreviousNext

BITMAPCOREINFO结构定义了与设备无关的位图(DIB)的尺寸和颜色信息。

typedef struct _BITMAPCOREINFO { // BMCI

BITMAPCOREHEADER bmciHeader;

RGBTRIPLE bmciColors[1];

} BITMAPCOREINFO;

会员

bmciHeader

指定一个BITMAPCOREHEADER结构,其中包含有关DIB的尺寸和颜色格式的信息。

bmciColors

指定定义位图中颜色的RGBTRIPLE结构的数组。

备注

DIB由两部分组成:描述位图的尺寸和颜色的BITMAPCOREINFO结构以及定义位图像素的字节数组。数组中的位打包在一起,但是每个扫描线必须用零填充才能在LONG边界上结束。位图的原点是左下角。

bcBitCount结构的bcBitCount成员确定了定义每个像素的位数以及位图中最大颜色数。该成员可以是以下值之一:

含义
1位图是单色的,bmciColors成员包含两个条目。位图数组中的每一位表示一个像素。如果该位清除,则以bmciColors表中第一个条目的颜色显示像素;如果该位被设置,则该像素具有表中第二条目的颜色。
4位图最多有16种颜色,bmciColors成员最多包含16个条目。位图中的每个像素由颜色表中的4位索引表示。例如,如果位图中的第一个字节为0x1F,则该字节表示两个像素。第一像素包含第二表条目中的颜色,第二像素包含第十六表条目中的颜色。
8位图最多有256种颜色,bmciColors成员最多包含256个条目。在这种情况下,阵列中的每个字节表示单个像素。
24位图最多有2(24)种颜色,而bmciColors成员为NULL。位图阵列中的每个三字节三元组分别表示像素的红色,绿色和蓝色的相对强度。

bmciColors表格中的颜色应按重要程度排列。

或者,对于使用DIB的函数,bmciColors成员可以是16位无符号整数的数组,其指定当前实现的逻辑调色板的索引,而不是显式RGB值。在这种情况下,使用位图的应用程序必须调用DIB函数(CreateDIBitmapCreateDIBPatternBrushCreateDIBSection),并将【iUsage】参数设置为DIB_PAL_COLORS。

注意如果位图要存储在文件中或转移到另一个应用程序,bmciColors成员不应包含调色板索引。除非应用程序具有独占使用和位图的控制,否则位图颜色表应包含显式的RGB值。

也可以看看

BITMAPCOREHEADER, CreateDIBitmap, CreateDIBPatternBrush, CreateDIBSection, RGBTRIPLE