首页 > 编程知识 正文

bmp用什么软件打开,位图文件格式bmp特点

时间:2023-05-05 05:06:30 阅读:164494 作者:4627

BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列。

一、图像文件头1 )1) (此处的数字表示“字”,即2字节。 下同)图像文件头。 424 DH=’BM’表示Windows支持的BMP格式。

2 )2-3)整个文件大小。 4690 0000,00009046 h=36934。

3 )4-5:待定,必须设置为0。

4 )6-7)文件到位图数据的偏移量。 4600 0000,00000046 h=70,上面的文件头为35个字=70字节。

5 )8-9)位图报头长度。

6 ) 10-11 )位图宽度,以像素为单位。 8000 0000,0000080 h=128。

7 ) 12-13 )位图的高度,以像素为单位。 9000 0000,0000090 h=144。

8 ) 14 :位图的位面数。 此值始终为1。 01000001 h=1。

二、位图信息标头9 ) 15 )每像素的位数。 1 (单色)、4(16色)、8 ) 256色)、16 ) 64k色、高彩色)、24 ) 16m色、全色)、32 ) 4096m色、增强型全色)。 1000为0010h=16。

10 ) 16-17 )压缩说明:0(未压缩),1 ) RLE 8,8位RLE压缩),2 ) RLE 4,4位RLE压缩,3 )3(位空间存储)。 RLE简单地说,是采用像素数的像素值的方式进行压缩。 T408采用位区域存储方式,将1个像素用2字节表示,位区域被分配到r5b6g5。 图中的0300 0000是00000003h=3。

11 ) 18-19 )以字节数表示的位图数据的大小。 该数必须为4的倍数,数值上与位图宽度位图高度每像素的位数相等。 0090 0000为00009000h=80902h=36864。

12 ) 20-21 )以像素/米表示的水平分辨率。 A00F 0000是0000 0FA0h=4000。

13 ) 22-23 )由像素/米表示的垂直分辨率。 A00F 0000是0000 0FA0h=4000。

14 ) 24-25 )位图中使用的颜色索引数。 如果设置为0,则使用所有调色板项目。

15 ) 26-27 )对图像显示有重要影响的颜色索引数。 0表示它们都很重要。

三.彩板16(28-35 )彩板规格。 对于组件面板中的每个表条目,请按如下方式描述RGB值:

1字节用于蓝色分量

1个字节用于绿色分量

红色分量有1字节

一个字节用于填充。 设定为0

位图的RGB值表示每个像素的颜色,因此24位真彩色图像不使用色板。

例如,彩色板为00f 80000 e 00700001 f 00000000000000000,其中:

00FB 0000为fb00h=1111100000000 (二进制),为红色成分的蒙版。

E007 0000为07E0h=0000011111100000 (二进制),是绿色成分的口罩。

1F00 0000为001f h=000000001111 (二进制),为红色成分的蒙版。

0000 0000始终设置为0。

对蒙版和像素值进行and运算并进行移位操作,可以得到各色成分值。 观察掩码可知,实际上各像素值的2字节16位中,从高的一方开始取5、6、5位时分别为r、g、b成分值。 取出分量值后,将r、g、b的值分别乘以8、4、8就可以将第一个分量补充到一个字节中。 然后,如果将这3个字节按rgb进行组合并放入内存中,就可以(同样按相反顺序)转换为24位标准BMP格式。

四.图像数据阵列17(17 )…:每2个字节表示一个像素。 数组的第一个字节表示位图左下角的像素,最后一个字节表示位图右上角的像素。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。