1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > bmp文件头_图像算法原理与实践——图像文件存储

bmp文件头_图像算法原理与实践——图像文件存储

时间:2021-02-08 18:08:16

相关推荐

bmp文件头_图像算法原理与实践——图像文件存储

图像数据在计算机储器设备中的存储形式是图像文件,图像必须按照某个公开的、规范约终结定的数据存储顺序和结构进行保存,才能使不同的程序对图像文件顺利进行打开或存盘操作,实现数据共享。图像数据在文件中的存储顺序和结构称为图像文件格式。目前主流的图像文件格式有 .bmp; .jpg;.jpeg;.png;.gif;.webp;.tiff;.psd 等各种不同的文件格式。在这些图像格式中大部分的格式,都是将像素数据经过压缩编码后进行保存的,这里涉及到比较复杂的图像压缩算法等操作,只有BMP格式的文件是支持原始图像数据保存的,本章重点针对BMP文件格式进行详细讲述。

BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选 1bit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。在Windows系统平台上和Android手机上,直接使用系统默认的图片浏览器即可打开。

一、BMP文件格式详解

BMP文件总共由四个部分构成:

(1)BMP文件头(bmp file header):提供文件的格式、大小等信息

(2)位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息

(3)调色板(color palette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表,在使用 256位彩色、16位彩色等情况下用到

(4)位图数据(bitmap data):就是图像的像素数据

BMP文件总的构成

1、BMP文件头部分

固定占用14个字节,包括文件类型表示、文件大小、像素数据偏移等信息

2、位图信息头

固定占用40个字节,包含了图像的基本新,例如:像素的宽度、高度、色彩格式位数、是否有压缩(绝大部分情况下无压缩)等。

3、调色板信息

这一项是可选项,适用于索引方式伪彩色的图像数据。调色板其实是一张映射表,标识颜色索引号与其代表的颜色的对应关系。总共有256个索引,每个索引对应一个RGBA四字节的色彩值,而后续位图数据只需要保存每个像素点的索引,根据索引找到对应的RGBA数据值。根据索引列表大小,该部分信息总计占用 256*4=1024个字节。

伪彩色方式在过去计算机存储空间不足的情况下,采用的一种平衡内存和效果的方式,由于现在硬件成本的大幅度下降,所以现在这种方式在绝大部分甚至嵌入式设备上也很少使用了,因此本章节也不对该部分详细讲述。

4、位图数据

这部分存放的就是详细的每个像素的RGB或者RGBA数据。存放顺序从左到右、从下到上的顺序存放。 这里有两点需要注意一下:

(1)像素RGB值存放时,先存放图像最下面一行数据,然后再存放下面倒数第二行数据,所以存放顺序是倒的,这个跟正常浏览顺序不一样。

(2)每一行像素数据需要保证4字节对齐,不对齐的需要补充空字节,这个是BMP文件格式本身要求的。对于RGBA 32位色彩格式来说没有任何问题,但是对于Gray或者RGB格式的数据 ,有时一行像素需要补充一些空字节。例如:对于宽高为 322*240 像素的RGB数据,正常计算一行像素数据需要 322 * 3= 966字节,但是966不是四字节对齐,所以在存储时,每行的像素数据要保存为 968字节,最后2个字节保留。

二、BMP文件读写操作

针对如上的BMP文件格式,我们使用C语言来实现对于.bmp文件的读写操作,考虑到调色板格式的色彩格式现在几乎不再使用,因此我们代码中也不考虑这种情况。

//

总结

本章主要讲解了对于非压缩的RGB、RGBA像素格式的图像数据保存到.bmp文件的方法。.bmp文件是使用最广泛的文件格式之一,支持的平台众多,也是存储和加载最方便的一种图像格式。在后续教程中,我们可以随时将算法处理过程中的图像数据保存下来查看图像内容,从而方便调试。而其他格式的图片可以通过工具方便的转换为.bmp图片,在Windows平台上最简单的一种方式是:使用Windows系统自带的画图程序,打开任意格式的图像文件,然后选择另存为 .bmp即可。

文章系列目录

华叔-视觉魔术师:图像算法原理与实践——绪论​

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。