当前位置:网站首页 > 创业 > 正文

浅析BMP文件格式

0 张子豪 张子豪 2025-10-11 18:33 1

我们在编程的时辰,有的时辰会用到BMP文件的存储以及读取,这个时辰就需要对BMP文件格局有一个大要的领会才能顺遂的读取以及存储BMP文件

总述

  1. 1

    BMP文件总体来说由四部门组成,别离为位图文件头、位图信息头、彩色表和图像数据阵列。知道了文件的构成那么大要说一下文件这几部门巨细:

    位图文件头巨细为14字节,

    位图信息头为40字节,

    彩色表按照BMP图的分歧(我感受这里的分歧指的就是日常平凡说的单色位图、8位位图以及16位位图或者24位位图这种分歧)而巨细分歧

    图像数据阵列就是看图片的巨细而分歧了,接下来具体针对分歧部门来进行诠释,如下图:

位图文件头

  1. 1

    位图文件头如下图有五个部门构成,依次进行诠释:

    1.bfType:2字节 暗示位图类型,因为这里解析的是BMP文件,所以这两个字节为BM

    2.bfSize:4字节 暗示文件的巨细

    3.bfReserved1:2字节 这个是保留的,为0

    4.bfReserved2:2字节 这个也是保留的,为0

    5.bfOffBits:4字节 这个是说文件起头到现实图像数据之间的字节偏移量,我理解的文件包罗四个部门,最后一个部门为现实图像数据,所以这个量指的就是前三个内容的巨细

位图信息头 和 彩色表

  1. 1

    下图中的变量BITMAPINFO布局暗示位图信息头,包罗两个部门,别离诠释:

    1.bmiHeader 40字节  暗示位图文件信息头 这个在步调2进行具体诠释

    2.bmiColors 字节不心猿意马 暗示彩色表 这个在步调3进行具体诠释

  2. 2

    下图中暗示的就是bmiHeader 位图信息头的构成部门,别离进行诠释:

    1.biSize 4字节 暗示位图文件信息头的巨细(为40 单元是字节)

    2.biWidth 4字节  暗示位图文件的宽度(像素)

    3.biHeight 4字节 暗示位图文件的高度(像素)

    4.biPlanes 2字节 不太理解,一般为1

    5.biBiCount 2字节  这个就是常说的几位位图,值为1/4/8/16/24/32

    6.biCompression 4字节 暗示位图文件的压缩体例,默认0 暗示没有压缩

    7.biSizeImage 4字节 暗示图像的巨细,当没有压缩的时辰,这个值可觉得0

    8.biXPelsPerMeter 4字节 暗示程度分辩率

    9.biYPelsPerMeter 4字节 暗示垂直分辩率

    10.biCIrUsed 4字节 暗示彩色表中的颜色索引数量

    11.biCIrImportant 4字节 暗示有主要影响到颜色索引数量

  3. 3

    下图中暗示彩色表中一个彩色快的布局,别离进行诠释

    1.rgbBlue 1字节 蓝色

    2.rgbGreen 1字节 绿色

    3.rgbRed 1字节 红色

    4.rgbReserved 1字节 保留位0

  4. 4

    申明一点:

    当位图为单色位图的时辰,有2个彩色快

    当位图为4位位图的饿时辰,有16个彩色快

    当位图为8位位图的时辰,有256个彩色快

    当位图为24位位图的时辰,没有彩色快

图象数据阵列字节

  1. 1

    第四部门是图像数据类,一幅图的数据挨次是从左往右,然后从上往下,(举个例子2x2,挨次就是0,0  0,1  1,0  1,1 ),然后需要注重一点是windows读取文件一行字节数必需是4的倍数,所以不敷4字节要补齐,然后就用到了下面图中的公式,下图入彀算成果就是一行要用到的字节数,如下图:

  2. 2

    申明一点:

    当位图为单色位图时,8个像素占一个字节

    当位图为4位位图时,4个像素占一个字节

    当位图为8位位图时,1个像素占一个字节

    当位图为24位位图时,1个像素占三个字节

注重事项

  • 小我不雅点,仅供参考。
  • 感激阅读。

来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!


本文链接:https://www.ibaiwen.com/web/228527.html

张子豪

张子豪

TA很懒,啥都没写...

@百闻娱乐 本站部分内容转自互联网,若有侵权等问题请及时与本站联系,我们将在第一时间删除处理。 | 粤ICP备2024343649号 | (地图