羊群软件开发
达芬奇图形库
达芬奇文档
位图信息头
设备相关位图的格式信息
- BITMAPINFOHEADER结构存储有关Windows 3.0及更新版本使用的设备无关位图(DIB)的尺寸和调色板的信息。
-
typedef结构标记BITMAPINFOHEADER{DWORD biSize;DWORD biWidth;DWORD biHeight;WORD双平面;单词biBitCountDWORD双压缩;DWORD双尺寸图像;DWORD biXPelsPerMeter;DWORD双倍每米;使用DWORD biClr;DWORD biClr重要;}位图信息管理器;
BITMAPINFOHEADER结构具有以下成员:
字段 |
类型 |
描述 |
biSize(双尺寸) |
达沃德 |
指定BITMAPINFOHEADER结构所需的字节数。 |
双宽度 |
达沃德 |
指定位图的宽度(以像素为单位)。 |
图像高度 |
达沃德 |
指定位图的高度(以像素为单位)。如果图像高度是正数,位图是一个“自下而上”的DIB,其原点是左下角。如果图像高度为负值,位图为“自上而下”DIB,其原点位于左上角。请注意,许多达芬奇函数仅支持自下而上的位图(biHeight>=0)。 |
双飞机 |
单词 |
指定目标设备上的颜色平面数。在大多数情况下,此值必须设置为1。
达芬奇扩展名:对于48位DIB(分辨率为每种颜色值16位的位图),双飞机应设置为2。
|
双位计数 |
单词 |
指定每像素的位数。在16位版本中,该值必须为1、4、8或24;在32位版本的达芬奇. |
双压缩 |
达沃德 |
指定压缩位图的压缩类型。以下值被指定为Windows位图的标准值: |
|
|
价值观重要性 BI_RGB标准Windows位图;未压缩。
BI_RLE4 RLE(行程长度编码)4bpp(16色)图像。有关详细信息,请参阅以下关于位图压缩格式的部分。
BI_RLE8 RLE(运行长度编码)8bpp(256色)图像。有关详细信息,请参阅以下有关位图压缩格式的部分。
|
biSize图像 |
达沃德 |
指定图像的位图数据段的大小(实际像素数据,不包括BITMAPINFOHEADER和RGBQUAD结构)。 |
每米biXPels |
达沃德 |
指定目标设备的水平分辨率(像素/米)。应用程序通常使用此值来选择最符合当前设备特征的资源位图。 |
每米双倍 |
达沃德 |
指定位图的目标设备的垂直分辨率,以每米像素为单位。 |
使用颜色 |
达沃德 |
指定位图使用的颜色表中颜色索引的实际数量。如果此值为零,位图将使用与双位计数指定的压缩模式的成员双压缩. 如果使用颜色非零且双位计数成员小于16,则使用颜色成员指定图形引擎或设备驱动程序访问的实际颜色数。如果双位计数等于或大于16,则使用颜色成员指定颜色表的大小。这可用于优化Windows调色板的性能。如果双位计数等于16或32,则最佳调色板紧跟在三个双字遮罩之后。
如果位图是压缩位图(位图的像素数据数组紧跟在BITMAPINFO标头之后,并且由单个指针引用的位图),则使用颜色成员必须为0或颜色表的实际大小。
|
biClr重要 |
达沃德 |
指定被认为对显示位图很重要的颜色索引数。如果该值为零,则所有颜色都很重要。 |
评论
BITMAPINFO结构结合了BITMAPINFOHEADER结构和颜色表,以提供DIB的维度和颜色的完整定义。有关DIB的更多信息,请参阅WinAPI帮助文件中对BITMAPINFO数据结构的描述。
- 应用程序应使用存储在biSize(双尺寸)成员在BITMAPINFO结构中定位颜色表,如下所示:
-
pColor=((LPSTR)pBitmapInfo+(UINT)(pBitmappInfo->biSize))
Windows DIB由两个不同的部分组成:包含位图图像尺寸和颜色表的BITMAPINFO数据结构,以及表示组成图像本身的像素的字节字段或数据数组。此字段中的位是压缩的,但每个屏幕行(每个垂直像素行)必须根据需要用零填充,以便以LONG限制结束。16位应用程序的64 KB段边界可以显示在图形的一个像素内。
注意,DIB的原点(“起点”)是位图的左下角,而DDB的原点是上面的左角。
双位计数
这个双位计数BITMAPINFOHEADER结构的成员确定每个像素中的位数,还定义位图中可以使用的最大颜色数。此成员可以使用以下值:
价值观重要性
1位图是单色的bmci颜色BITMAPINFO结构的成员必须包含两个条目。位图中的每一位代表一个像素。如果该位被删除,像素将以表中第一项的颜色显示bmci颜色。如果设置了位,则像素具有表中第二项的颜色。位按7、6、5、4、3、2、1、0的顺序解释。
4位图最多有16种颜色bmci颜色BITMAPINFO结构的成员包含16个条目。位图中的每个像素都由一个四位长的索引表示,该索引定义了该像素将使用位图调色板中的哪种颜色。例如,如果位图中的第一个字节是0x1F,那么第一个像素将是第二个表条目(调色板索引1)中的颜色,第二个像素将为第十六个表条目中的颜色(调色板索引15)。
8位图最多有256色bmci颜色BITMAPINFO结构的成员最多可以包含256个条目。每个字节表示单个像素调色板索引中的颜色。
16(仅为Windows NT 3.5+、Windows 95/98和Windows视频定义。)位图最多可以有32767种颜色。在这种情况下bmci颜色成员将保留为空。位图数据字段中的每两个字节表示特定像素的红、绿、蓝(RGB)的相对强度。
24位图最多可以有2^24色(通常称为1600万色,但并不完全准确)。这个bmci颜色成员为空。位图数据字段中的每三个字节表示每个像素(BGR)的蓝色、绿色和红色的相对强度。字节的顺序是蓝色、绿色、红色.
32位图最多可以有2^24种颜色(见上文)。这个bmci颜色字段再次为空。位图数据字段中的每四个字节表示给定像素的蓝色、绿色和红色(BGR)的相对强度,第四个字节(未使用)通常设置为0。
笔记
这个使用颜色结构BITMAPINFOHEADER的成员指定该图像调色板中当前使用的颜色索引的实际数量。
中列出的颜色bmi颜色表格应按重要性排列。
位图压缩格式
Windows为每像素4位和8位图像提供了自己的内部位图压缩格式。Windows使用的RLE(运行长度编码)压缩通常会(但并不总是)减少位图的存储和主内存需求。达芬奇但是,函数不直接支持Windows RLE图像格式。导入图像时,达芬奇将调用它自己的内部解压缩例程并返回未压缩的DIB。
另请参见:
位图信息头
位图信息