| 羊群软件开发
|=
达芬奇图形库
|==
达芬奇文档 主页 搜索 订单


位图信息头

设备相关位图的格式信息

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。

另请参见:

位图信息头

位图信息