都是小端的形式; 以Window Paint.net生成的24位BMP文件为例:
位置|大小|内容
--|--|--
0x0| 2 | BM
0x2| 4 | 文件大小
0x6| 4 | 保留位, 一般全0
0xA| 4 | 像素数据起始位置, 一般为0x36
0xE| 4 | DIB(Bitmap Information Header)头长度(), 一般为0x28
0x12| 4 | 图片宽
0x16| 4 | 图片高
0x1A| 2 | color plane数量, 必须是1
0x1C| 2 | 色深, 24位就是0x18
0x1E| 4 | 压缩方法, 一般全0
0x22| 4 | 图片大小, 一般全0, 因为0x2已经说了文件大小, 减去头部0x36就知道了.
0x26| 4 | 横向分辨率, pixel/meter.
0x2A| 4 | 纵向分辨率, pixel/meter.
0x2E| 4 | color palatte数量, 一般全0
0x32| 4 | 重要颜色使用数量, 一般全0
0x36| n*3 | 颜色像素, 从左下角开始一行一行到右上角. 因为是小端排列,所以是BGR顺序, 每个一个字节. 如果一行不足4字节, 则补0.
像素区域一行补零的方式是: 如宽度为3px的画面, 一行像素为9个字节, 则一行后面补3个0byte, 到12个字节.

标签: none 阅读量: 315

添加新评论