第161篇 日记
2026年02月07日 阴 Sat.
软件知识:不同位数的bmp图像
这是一个bmp格式的表情包,它的位数为24位(可以显示224=16,777,216种颜色),大小为118KB:
但如果将它转换为8位(可以显示256种颜色)bmp格式,大小会变为40.1KB,而且本来的肤色会变成这样:
这是因为8位bmp图像使用调色板来存储颜色信息,而调色板只能包含256种颜色。当原始图像中的颜色超过256种时,转换工具会选择最接近的颜色来替代,这就导致了颜色失真和图像质量下降,看上去很怪。
如果再把它转换为4位(只能显示16种颜色)bmp格式,大小会变为19.6KB:
这时图像质量就更差了,因为4位bmp图像的调色板只能包含16种颜色,远远不能满足原始图像的需求,所以颜色失真更加严重,看上去就像素化了。
最后我把它转换为1位bmp格式,大小会变为5.52KB:
这时图像质量就非常差了,因为1位bmp图像只能显示两种颜色(就是纯黑和纯白),完全无法表达原始图像的细节和颜色信息,看上去就像一个黑白的轮廓图了。
我还发现一个问题,就是一个logo图片,用png格式保存时,大小为1.57KB,但用bmp格式保存时,大小会变为5.52KB,而且位数为1位。这说明png格式在压缩图像数据方面比bmp格式更高效。

再来看看我用24位bmp格式保存的涂鸦,依次转换至8位、4位、1位:



下面的表格总结了不同位数下的bmp图像的各种颜色会变成什么另外的颜色:
| 24位bmp | 8位bmp | 4位bmp | 1位bmp |
|---|---|---|---|
| 红色(#f00710) | 红色(#ff0000) | 红色(#ff0000) | 黑色 |
| 橙色(#ffa500) | (有点像棕色) | 橄榄绿 | 黑色 |
| 黄色 | 黄色 | 黄色 | 白色 |
| 浅绿色 | 浅绿色 | 黄色 | 白色 |
| 浅蓝色 | 浅蓝色 | 灰色 | 白色 |
| 蓝色 | 蓝色 | 蓝色 | 黑色 |
| 紫色 | 紫色 | 更深的紫色 | 黑色 |
| 粉色 | 灰粉色 | 灰色 | 白色 |
| 棕色 | 棕色 | 橄榄绿 | 黑色 |
总之来说,不同位数的bmp图像在颜色表现上存在显著差异。24位bmp图像可以显示丰富的颜色,而位数越低,图像的颜色表现就越受限,最终导致图像质量下降。如果你需要保存图像为bmp格式,建议使用24位或更高位数以保持图像质量,如果你的图片对色彩要求不高,而且想要让图像文件更小,可以考虑使用8位的bmp格式。而4位的bmp图像则会进一步降低图像质量,因此不建议使用。1位就完全失去了图像的细节和颜色信息,只保留了黑白轮廓,而且纯黑白的图像用png格式保存会更高效。