DIB图素位元

王朝百科·作者佚名  2010-01-04  
宽屏版  字体:   |    |    |  超大  

DIB档案的最後部分(在大多数情况下是DIB档案的主体)由实际的DIB的图素位元组成。图素位元是由从图像的底行开始并沿著图像向上增长的水平行组织的。

DIB中的行数等於BITMAPCOREHEADER结构的bcHeight栏位。每一行的图素数等于该结构的bcWidth栏位。每一行从最左边的图素开始,直到图像的右边。每个图素的位元数可以从bcBitCount栏位取得,为1、4、8或24。

以位元组为单位的每行长度始终是4的倍数。行的长度可以计算为:

RowLength = 4 * ((bmch.bcWidth * bmch.bcBitCount + 31) / 32) ;

或者在C内用更有效的方法:

RowLength = ((bmch.bcWidth * bmch.bcBitCount + 31) & ~31) >> 3 ;

如果需要,可通过在右边补充行(通常是用零)来完成长度。图素资料的总位元组数等于RowLength和bmch.bcHeight的乘积。

要了解图素编码的方式,让我们分别考虑四种情况。在下面的图表中,每个位元组的位元显示在框内并且编了号,7表示最高位元,0表示最低位元。图素也从行的最左端从0开始编号。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有