BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。
先解释下数据存贮方式:
1、在windows中,颜色顺序是:B G R。
2、BMP的内存行顺序和图像显示的行顺序是上下颠倒的。
即:BMP内存第0行,是真实图像下面的最后一行。
举例,假如图像为2*2大小,像素三颜色按照RGB的顺序, 我们看到的图像为:
1 2 3, 11 22 33
4 5 6, 44 55 66
内存表示如下:
6 5 4, 66 55 44 (0 0) -- 第0行
3 2 1, 33 22 11
(0 0) -- 第1行
注意,通常内存是需要内存对齐的,所以每行后面可能会有对齐所产生的0.
最常见的就是24位图,所谓的24位图,就是说一个像素的颜色信息用24位来表示,也就是说,对于三原色BRG,每一个颜色都用以字节(8)位来表示。除了24位图,还有1位(单色),2位(4色,CGA),4位(16色,VGA),8位(256色),16位(增强色),24位(真彩色)和32位等
BMP文件的数据按照从文件头开始的先后顺序分为四个部分:
◆
位图文件头(bmp file header): 提供文件的格式、大小等信息
共14字节
◆
位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息
共40字节
◆
调色板(color palette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表
◆
位图数据(bitmap data):图像数据区