From: http://www.raidcn.com/js/BMPTuXiangWenJianGeShiFenXiFuDaiTuJie.html
认识BMP文件格式,以及bmp文件存储结构 ,通过winhex查看文件结构解析。
一、认识BMP文件格式.
1、 BMP格式是由微软公司开发。通常BMP图像文件的后缀名是BMP,但也有少数是.DIP。不过单凭文件的后缀名并不能惟一确定是不是BMP图像文件,要惟一确定BMP图像文件还需要分析文件的存储格式。
2 、 BMP图像文件和GIF 图像文件不同,BMP图像文件只能存储一幅图像,即一帧。GIF图像文件能保存多帧图像,从而可以实现动画的效果。
3 、 BMP图像文件支持单色、16色、256色和真彩色4种颜色的图像。BMP图像的数据即可以压缩也可以不压缩,如果图像选择了压缩数据,那么根据颜色的不同,BMP使用不同的RLE压缩方式。REL 是一种无损压缩方法,使用RLE压缩的数据能完整还原。如果图像是16色,则可以采用RLE4压缩,如果图像是256色,则可以采用RLE8压缩。真彩色的图像不使用压缩。
4 、 BMP的图像数据排列有点特别,数据排列方式首先从图像的左下角第一个像素开始存储第一行数据,即BMP图像数据存储的最后一个像素等于实际图像的右上角第一个像素。
二、BMP图像文件存储结构。
BMP图像的组成 = 位图文件头 + 位图信息头 + 调色板(真彩色没有此项) + 位图数据。
1、 位图文件头 包含了图像类型、图像大小、图像数据存放地址和两个保留未用的字段。
2、 位图信息头 包含了位图信息头的大小、图像的宽度高度、图像的色深、压缩说明、图像数据的大小和其他一些参数。)
3、 调色板 是单色、16色、256色图像文件所特有的,相对应的调色板大小是2、16、和256,调色板以4字节为单位,每4个字节存放一个颜色值。图像的数据是指向调色板的索引。
4、 位图数据 如果图像是单色、16色、256色,则紧跟着调色板的是位图数据,位图数据是指向调色板的索引序列号。如果位图是16位、24位、和32位,则图像文件中不保留调色板,即不存在调色板,图像的颜色直接在位图数据中给出。
三、实例存储实验
通过上面的系统学习,现在我们配合图片进一步加深印象。GO!!!!
首先我们挑选一张256色BMP格式的图片,
用winhex打开它如下图: