说明
以下4x2, 5x2等表示 width x height。
BMP存储格式要求每行的字节数必须是4的倍数。
对于24位的位图,每个像素有3个字节。有如下公式:
补零的个数=width%4
4x2 24色
00000000h: 42 4D 4E 00 00 00 00 00 00 00 36 00 00 00 28 00 ; BMN.......6...(.
00000010h: 00 00 04 00 00 00 02 00 00 00 01 00 18 00 00 00 ; ................
00000020h: 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000030h: 00 00 00 00 00 00 FF FA F5 FF FA F5 FF FA F5 FF ; ......
00000040h: FA F5 FF FB F6 FF FB F6 FF FB F6 FF FB F6 ;
每行 4个像素 x 3字节/像素 = 12bytes
每行 12字节 x 2行(高) = 24bytes = 0x18byts
即实际像素部分的数据如下:
FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5
FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6
5x2 24色
00000000h: 42 4D 56 00 00 00 00 00 00 00 36 00 00 00 28 00 ; BMV.......6...(.
00000010h: 00 00 05 00 00 00 02 00 00 00 01 00 18 00 00 00 ; ................
00000020h: 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 ; .. .............
00000030h: 00 00 00 00 00 00 FF FA F5 FF FA F5 FF FA F5 FF ; ......
00000040h: FA F5 FF FA F5 00 FF FB F6 FF FB F6 FF FB F6 FF ; .
00000050h: FB F6 FF FB F6 00 ; .
3x5 + 1 = 16bytes,即每行最后补1个字节
FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - 00
FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - 00
6x2 24色
00000000h: 42 4D 5E 00 00 00 00 00 00 00 36 00 00 00 28 00 ; BM^.......6...(.
00000010h: 00 00 06 00 00 00 02 00 00 00 01 00 18 00 00 00 ; ................
00000020h: 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ..(.............
00000030h: 00 00 00 00 00 00 FF FA F5 FF FA F5 FF FA F5 FF ; ......
00000040h: FA F5 FF FA F5 FF FA F5 00 00 FF FB F6 FF FB F6 ; ..
00000050h: FF FB F6 FF FB F6 FF FB F6 FF FB F6 00 00 ; ..
6x3=18bytes
18+2=20bytes 每行补2个字节
20x2=40bytes=0x28bytes
FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - 00 00
FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - 00 00
7x2 24色
00000000h: 42 4D 66 00 00 00 00 00 00 00 36 00 00 00 28 00 ; BMf.......6...(.
00000010h: 00 00 07 00 00 00 02 00 00 00 01 00 18 00 00 00 ; ................
00000020h: 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ..0.............
00000030h: 00 00 00 00 00 00 FF FA F5 FF FA F5 FF FA F5 FF ; ......
00000040h: FA F5 FF FA F5 FF FA F5 FF FA F5 00 00 00 FF FB ; ...?
00000050h: F6 FF FB F6 FF FB F6 FF FB F6 FF FB F6 FF FB F6 ; ?
00000060h: FF FB F6 00 00 00 ; ...
7x3=21bytes
21+3=24bytes
24*2=48bytes=0x30bytes
FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - FF FA F5 - 00 00 00
FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - FF FB F6 - 00 00 00