2024年3月26日发(作者:)
一.BMP文件概述
BMP文件格式,又称为位图(Bitmap)或是Device Independent Device(DIB,
与设备无关位图),是Windows使用的图像文件格式,
位图是一个二维的位数组,
它与图像的图素一一对应。当现实世界的图像被扫描成位图以后,图像被分割成
网格,并以图素作为取样单位。在位图中的每个图素值指明了一个单位网格内图
像的平均颜色。单色位图每个图素只需要一位,灰色或彩色位图中每个图素需要
多个位。位图代表了Windows程序内储存图像信息的两种方法之一。储存图像信
息的另一种形式是metafile, Metafile储存的就是对图像如何生成的描述,而
不是将图像以数字化的图标代表。位图有两个主要的缺点。第一个问题是容易受
设备依赖性的影响。最明显的就是对颜色的依赖性,在单色设备上显示彩色位图
的效果总是不能令人满意的。另一个问题是位图经常暗示了特定的显示分辨率和
图像纵横比,
位图的第二个缺点是需要很大的储存空间。位图除空间尺寸以外,
位图还有颜色尺寸。这里指的是每个图素所需要的位数,有时也称为位图的颜色
深度(color depth)、位数(bit-count)或 位/图素(bpp:bits per pixel)
数。位图中的每个图素都有相同数量的颜色,每图素1位的位图称为二阶
(bilevel)、 二色(bicolor)或者单色 (monochrome)位图。每图素可以是
0或1,0表示黑色,1可以表示白色,但并不总是这样。对于其它颜色,一个图
素就需要有多个位。可能的颜色值等于2位数值。用2位可以得到4种颜色,用
4位可以得16种颜色,8位可得到256种颜色,16位可得到65,536种颜色,而
24位可得到16,777,216种颜色。
BMP文件的数据按照从文件头开始的先后顺序分为四个部分:
bmp文件头(bmp file header):提供文件的格式、大小等信息。
位图信息头(bitmap information):提供图像数据的尺寸、位平面数、
压缩方式、颜色索引等信息。
调色板(color palette):可选,如使用索引来表示图像,调色板就是索
引与其对应的颜色的映射表。
位图数据(bitmap data):图像数据。
注意:我们一般见到的图像以24位图像为主,即R、G、B三种颜色各用8
个bit来表示,这样的图像我们称为真彩色,这种情况下是不需要调色板的,也
就是所位图信息头后面紧跟的就是位图数据了。因此有人说位图文件从文件头开
始偏移54个字节就是位图数据了,这其实说的是24或32位图的情况。安照这
种说法,我们写出的程序有时候也对某些BMP文件无效。8位的位图是有调色板
的。16位的位图有如果是16位的话555格式和565格式
555 bits :0rrrrrgggggbbbbb
565 bits : rrrrrggggggbbbbb
1.1bmp文件头
Windows为bmp文件头定义了如下结构体:
typedef struct tagBITMAPFILEHEADER
{
UINT16 bfType;
DWORD bfSize;
UINT16 bfReserved1;
UINT16 bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;


发布评论