BMP(Bitmap):windows支持的图片格式。
1.文件格式:
windows3.0以后的系统都使用DIB(device-independent bitmap),bmp文件的后缀有时候也以 .DIB或 .RLE结尾。
位图主要由:位图文件头、DIB头、调色板、数据值构成,如下图1:
图1
位图文件头分析(14位)如图2:(n = 24)
图2
DIB头分析(40位):windows3.0及更高的版本采用BITMAPINFOHEADER结构体,如图3:
图3
0X00000028 (40): 头的大小;
0X0000019D (413): 位图宽度;
0X0000012B (299): 位图高度;
0X0001 (1): 色彩平面数;
0X0018 (24): 色深;
0X00000000 (0): BI_RGB 无压缩;
0X0005A848 (370760): 原始位图数据大小;
0X000000C0 (192): 图像横向分辨率;
0X00000000 (0): 图像纵向分辨率;
0X00000000 (0): 调色板的颜色数,0表示默认为2的色深幂次个;
0X00000000(0):主要的颜色数,0表示所有颜色都重要;
调色板:无。
数据值:针对BITMAPINFOHEADER结构体,像素值可以是从下到上、从左到右保存,
或者从上到下存储时图像的高度为负。
2.存储算法
BMP文件通常是不压缩的,压缩算法一般会有RLE及霍夫曼1D压缩。具体算法内容这里不做介绍,写的够多了。