浅析BMP文件格式

2024-10-24 04:08:04

我们在编程的时候,有的时候会用到BMP文件的存储以及读取,这个时候就需要对BMP文件格式有一个大概的了解才能顺利的读取以及存储BMP文件

浅析BMP文件格式

位图文件头

1、位图文件头如下图有五个部分组成,依次进行解释:1.bfType:2字节 表示位图类型,由于这里解析的是BMP文件,所以这两个字节为BM2.bfSize:4字节 表示文件的大小3.bfReserved1:2字节 这个是保留的,为04.bfReserved2:2字节 这个也是保留的,为05.bfOffBits:4字节 这个是说文件开始到实际图像数据之间的字节偏移量,我理解的文件包括四个部分,最后一个部分为实际图像数据,所以这个量指的就是前三个内容的大小

浅析BMP文件格式

2、下图中表示的就是bmiHeader 位图信息头的组成部分,分别进行解释:1.biSize 4字节 表示位图文件信息头的大小(为40 单位是字节)2.biWidth 4字节 表示位图文件的宽度(像素)3.biHeight 4字节 表示位图文件的高度(像素)4.biPlanes 2字节 不太理解,一般为15.biBiCount 2字节 这个就是常说的几位位图,值为1/4/8/16/24/326.biCompression 4字节 表示位图文件的压缩方式,默认0 表示没有压缩7.biSizeImage 4字节 表示图像的大小,当没有压缩的时候,这个值可以为08.biXPelsPerMeter 4字节 表示水平分辨率9.biYPelsPerMeter 4字节 表示垂直分辨率10.biCIrUsed 4字节 表示彩色表中的颜色索引数目11.biCIrImportant 4字节 表示有重要影响到颜色索引数目

浅析BMP文件格式

4、说明一点:当位图为单色位图的时候,有2个彩色快当位图为4位位图的饿时候,有16个彩色快当位图为8位位图的时候,有256个彩色快当位图为24位位图的时候,没有彩色快

图象数据阵列字节

1、第四部分是图像数据类,一幅图的数据顺序是从左往右,然后从上往下,(举个例子2x2,顺序就是0,0 0,1 1,0 1,1 ),然后需要注意一点是windows读取文件一行字节数必须是4的倍数,所以不够4字节要补齐,然后就用到了下面图中的公式,下图中计算结果就是一行要用到的字节数,如下图:

浅析BMP文件格式

2、说明一点:当位图为单色位图时,8个像素占一个字节当位图为4位位图时,4个像素占一个字节当位图为8位位图时,1个像素占一个字节当位图为24位位图时,1个像素占三个字节

猜你喜欢