BMP文件结构

BMP图像文件被分成4个部分:位图文件头(BitmapFileHeader)、位图信息头(BitmapInfoHeader)、颜色表(C010rMap)和位图数据(即图像数据,DataBits或DataBody)

 如上图所示:

第1部分为位图文件头BITMAPFILEHEADER,是一个结构体类型,该结构的长度是固定的,为14个字节。主要包含位图文件的类型,大小以及到数据部分的偏移字节数。

第2部分为位图信息头BITMAPINFOHEADER,也是一个结构体类型的数据结构,该结构的长度也是固定的,为40个字节(WORD为无符号16位整数,DWORD为无符号32位整数,LONG为32位整数)。主要包含位图的宽高、每个像素所占的位数、位图的压缩类型,实际位图数据所占的字节数等等。

第3部分为颜色表颜色表实际上是一个RGBQUAD结构的数组,数组的长度由biClrUsed(在第2部分中)指定(如果该值为零,则由biBiCount(在第2部分中)指定,即2的biBitCount次幂个元素)。RGB各个颜色的分量。

第4部分是位图数据,即图像数据。

 

 

 

BMP(Bitmap)是一种图像文件格式,其文件结构如下: 1. 文件头(14字节) ``` 偏移量 大小(字节) 说明 0 2 文件类型,BM表示Windows位图,BA表示OS/2位图 2 4 文件大小,以字节为单位 6 2 保留,必须设置为0 8 2 保留,必须设置为0 10 4 从文件头到位图数据之间的偏移量,以字节为单位 ``` 2. 位图信息头(40字节或更多) ``` 偏移量 大小(字节) 说明 14 4 位图信息头的大小,以字节为单位 18 4 位图的宽度,以像素为单位 22 4 位图的高度,以像素为单位 26 2 位图的位面数,总是为1 28 2 每个像素的位数,常见的有1、4、8、16、24和32位 30 4 压缩类型,0表示不压缩,1表示RLE8压缩,2表示RLE4压缩 34 4 位图数据的大小,以字节为单位 38 4 水平分辨率,每米像素数 42 4 垂直分辨率,每米像素数 46 4 位图使用的颜色数,如果该值为0,则颜色数为2的位数 50 4 重要颜色数,如果该值为0,则所有颜色都是重要的 54 4 调色板,如果位图的位数小于等于8,则存在调色板 ``` 3. 调色板(可选,大小为4 * 颜色数字节) ``` 偏移量 大小(字节) 说明 54 4 * 颜色数 调色板,每个颜色占4个字节,依次是蓝色分量、绿色分量、红色分量和保留值 ``` 4. 位图数据 ``` 偏移量 大小(字节) 说明 文件头中的偏移量 位图数据的大小,每个像素占据的字节数为位图信息头中的“每个像素的位数”除以8,不足4的倍数时需要进行补齐 ``` 在BMP文件中,像素数据存储的顺序为从左到右、从下到上,即先从左到右按行存储,再从下到上按列存储。这种存储方式也被称为“倒立式存储”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值