这些 BMP(8 位,未压缩)字节是啥?

Posted

技术标签:

【中文标题】这些 BMP(8 位,未压缩)字节是啥?【英文标题】:What are these BMP (8-bit, not compressed) bytes?这些 BMP(8 位,未压缩)字节是什么? 【发布时间】:2021-01-17 22:30:21 【问题描述】:

我正在查看 8 位 BMP 位图的字节,其中 0 设置为调色板中的颜色数,0 设置为重要颜色,我想弄清楚从索引 54 开始到结束的字节代表什么在索引 1077。索引 1078 是像素数组的开始位置。

我读了https://en.wikipedia.org/wiki/BMP_file_format 还是想不通。

这是有问题的字节(我已经上传了原始图像,但它被重新格式化为 PNG):

00 00 00 00 00 00 80 00 00 80 00 00 00 80 80 00
80 00 00 00 80 00 80 00 80 80 00 00 c0 c0 c0 00
05 06 06 00 0a 0b 0b 00 14 17 18 00 17 2b 30 00
19 21 21 00 26 2b 2d 00 26 2a 2b 00 28 29 2a 00
2c 35 36 00 29 30 31 00 34 34 34 00 37 3c 3b 00
14 35 52 00 16 3e 63 00 2b 3a 4c 00 33 4b 37 00
22 4f 64 00 30 4f 55 00 34 44 4b 00 3a 46 48 00
3d 46 44 00 3e 4b 4d 00 37 4a 59 00 3d 4d 53 00
40 50 55 00 2a 49 67 00 29 57 78 00 30 4f 69 00
3a 56 69 00 38 5b 77 00 37 64 76 00 49 44 3f 00
42 4a 47 00 44 4c 47 00 45 4d 4c 00 46 4e 4b 00
46 4b 49 00 47 52 4e 00 4a 53 4f 00 4c 54 4f 00
46 53 54 00 47 56 5c 00 4b 56 53 00 4c 56 55 00
4e 57 53 00 4d 5a 55 00 4f 5a 57 00 4e 5b 5c 00
4b 50 51 00 52 5b 57 00 53 5d 57 00 53 5e 5a 00
54 5e 5c 00 56 59 58 00 47 5a 69 00 4e 5c 63 00
4c 5d 6d 00 49 6f 59 00 55 62 5d 00 57 62 5e 00
57 68 5a 00 5a 64 5f 00 4a 67 6a 00 4a 67 78 00
4f 76 70 00 56 64 64 00 56 67 6c 00 5b 66 62 00
5c 66 64 00 5d 6a 65 00 5f 6a 66 00 5d 6c 6c 00
58 6b 76 00 59 78 79 00 67 59 56 00 62 6f 6b 00
64 6f 6c 00 64 6a 66 00 64 73 6d 00 66 73 6e 00
6a 75 6f 00 65 75 74 00 66 79 7b 00 6a 77 73 00
6c 77 74 00 6d 7b 76 00 6d 7e 7c 00 6f 6c 76 00
73 7f 7b 00 79 7e 7b 00 2e 63 8e 00 36 6e 92 00
3a 6a 88 00 01 01 fe 00 49 6a 86 00 46 75 8c 00
49 7a 97 00 52 6e 8b 00 5a 78 88 00 59 7b 98 00
50 7c a7 00 64 72 a4 00 67 7c 86 00 6e 7b 8f 00
4b ae 53 00 43 84 2b 00 55 9a 3d 00 5a 94 31 00
66 93 1d 00 59 8a 6e 00 5c 84 7b 00 59 a0 5a 00
6a 85 7d 00 6c 94 73 00 74 83 7e 00 79 86 7e 00
63 c0 5f 00 6c b7 51 00 72 ba 60 00 71 c9 e8 00
4e 84 9b 00 5d 85 86 00 57 86 9c 00 55 8c b2 00
59 8a a6 00 5d 93 aa 00 7a a4 9b 00 67 89 88 00
6e 83 84 00 6c 8d 8c 00 69 89 98 00 6b 95 88 00
6d 94 8d 00 6e 95 98 00 74 86 84 00 76 8a 86 00
75 8c 8c 00 78 86 89 00 7b 8c 86 00 7c 8e 8c 00
77 8d 96 00 74 97 8d 00 7e 92 8e 00 77 98 98 00
7d 94 94 00 7d 9c 9c 00 66 8a a8 00 66 8c b7 00
64 96 ac 00 6a 97 ab 00 69 99 b7 00 76 97 b3 00
79 9a a7 00 6d a4 b9 00 7d a4 ab 00 78 a8 bb 00
64 a6 d7 00 6a 99 c6 00 6d ac d0 00 79 ab c6 00
7b b5 c9 00 7a ba d7 00 8d 87 74 00 83 94 8e 00
89 96 8d 00 84 96 94 00 85 9b 96 00 85 9d 9c 00
89 96 99 00 8b 9c 96 00 8b 9e 9c 00 8b 90 91 00
87 9d a4 00 90 9b ab 00 86 a4 9d 00 8d a3 9e 00
8b ad 91 00 94 a6 9b 00 85 a3 a4 00 89 a7 aa 00
8d a5 a4 00 8d ab ac 00 89 ab b7 00 8c b3 b7 00
93 a5 a5 00 96 a6 ab 00 94 ac a5 00 95 ad ac 00
9b aa a7 00 9b ad ae 00 94 ad b5 00 9e ae b2 00
97 b3 ac 00 9c b4 ad 00 95 b4 b4 00 96 b7 bc 00
9d b5 b4 00 9e bb b5 00 9d bc bc 00 a4 a0 a0 00
a4 bc b6 00 a4 be bc 00 a7 b7 b7 00 ac b1 b3 00
84 b6 c4 00 86 bb cc 00 88 b8 c8 00 8b be cc 00
88 ba d6 00 8c b2 cc 00 98 bb c7 00 a2 bb d1 00
9c c4 b9 00 a5 c3 bd 00 ab c5 bd 00 b6 c5 b6 00
8b c5 d7 00 96 c7 d1 00 94 c6 d3 00 99 cb d8 00
93 cf ec 00 95 ef fb 00 95 ed ed 00 9d e2 ed 00
b4 e8 f5 00 a5 c4 c4 00 ab c9 c8 00 b1 d3 d5 00
b9 c9 c9 00 aa d8 eb 00 cd c4 b7 00 c9 d6 d9 00
c9 d1 d2 00 d1 ed ee 00 cd e0 e1 00 e7 f7 f7 00
60 5d 2f 00 29 42 18 00 31 6d 12 00 28 5e 11 00
80 80 80 00 00 00 ff 00 00 ff 00 00 00 ff ff 00
ff 00 00 00 ff 00 ff 00 ff ff 00 00 ff ff ff 00

【问题讨论】:

【参考方案1】:

有问题的字节是 256 色的调色板(8 位的最大颜色数)。

【讨论】:

以上是关于这些 BMP(8 位,未压缩)字节是啥?的主要内容,如果未能解决你的问题,请参考以下文章

16位BMP图的RGB444和RGB565如何区分

JPG格式与BMP格式是啥图片

将字节相乘以产生 16 位,无需移位

sh ffmpeg prores到未压缩的8位png

五:亲自尝试压缩数据

压缩位图失败(Python 实现)