BMP 文件里装着什么
BMP 是 bitmap(位图)的缩写,是 Windows 从早期版本就开始使用的图片格式。它几乎是最简单的图片文件:先用一小段内容描述这张图,接着按顺序记录每个像素的颜色。
文件头、调色板、像素
BMP 以 14 字节的文件头开头,随后是记录宽度、高度和颜色深度的信息头。颜色数在 256 种及以内的图片,会再用一个调色板列出所用的颜色。之后才是像素,一行接一行,通常从图片最底下一行开始往上存。
位深
位深决定一个像素能表示多少种颜色。1 位位图只有黑白两色,4 位有 16 色,8 位有 256 色,24 位则能容纳 1670 万种颜色。32 位 BMP 多出第四个字节,有的程序用它存透明度,有的只把它当作填充。
BMP 为什么至今还在用
正因为格式简单,任何程序或设备都能轻松写出 BMP。老游戏、Windows 小工具、精灵图编辑器和嵌入式显示屏至今仍在生成它,所以 BMP 转 PNG 依然是很常见的需求。
BMP 文件为什么这么大
大多数 BMP 根本没有压缩。文件大小就是宽 × 高 × 每像素字节数,再加一点填充。
算一笔账
一张全高清截图是 1920 × 1080 像素。按 24 位计算,每个像素 3 字节,约合 6.2 MB,不管屏幕上显示的是复杂的照片还是一张白纸都一样。同一张截图存成 PNG,往往只有几百 KB。
行填充
每一行像素都会补齐到 4 字节的倍数。这对大图增加的体积很小,却能看出 BMP 存储图片有多“死板”:逐字节照搬,完全不考虑节省空间。
压缩的 BMP 存在,但很少见
这种格式确实允许 4 位和 8 位图片使用简单的游程编码压缩,对大面积纯色区域有效。但大多数程序都不用它,24 位位图更是根本无法使用。
把 BMP 转换成 PNG,可以在不改动任何像素的前提下去掉这些浪费,所以 PNG 往往比原文件小 80–95%。结果列表会显示每个文件具体省下了多少。
3 步把 BMP 转 PNG
拖入 BMP 文件
把一个或多个 .bmp 文件拖到虚线框内,或点击选择文件。每个文件都在浏览器中读取,不会上传。
保持选择 PNG
PNG 是默认选项,而且是无损的。如果你的位图是画在纯洋红色背景上的精灵图,请勾选“将洋红色 (#FF00FF) 设为透明”。
下载 PNG 文件
点击文件旁的“下载”,或点击“下载全部 ZIP”。每个结果都会显示位图的位深,以及 PNG 小了多少。
拖入一个或多个 BMP 文件。
保持 PNG 不变;精灵图请打开洋红色选项。
逐个下载 PNG,或打包成 ZIP 一次下载。
BMP 转 PNG 为什么是无损的
PNG 压缩时不会丢弃任何信息。它会寻找重复的内容,比如一整行相同的像素或反复出现的图案,然后只存一次。
像素不变,文件更小
BMP 转成 PNG 后,解码出来的像素与原始位图完全一致。颜色、边缘和文字都分毫不差,这对截图、界面原型和像素画尤其重要,因为哪怕改动一个像素都看得出来。
调色板位图仍是调色板图片
1 位、4 位和 8 位位图使用最多 256 色的调色板。本转换器同样把它们存为调色板 PNG,每像素 1 字节,而不是扩展成全彩图片,从而让 PNG 尽可能小。
32 位位图怎么办?
如果 32 位 BMP 声明了透明通道,并且你的浏览器能读取它,PNG 就会保留透明度。不过很多程序只把第四个字节写成普通填充,这种位图就是完全不透明的。
洋红色背景:把 #FF00FF 变成真正的透明
来自游戏、模拟器和老式 Windows 工具栏的 BMP 文件,常常带着刺眼的粉紫色背景。这是有意为之:在支持透明的格式普及之前,开发者会把需要透出的区域涂成纯洋红色(一种美术作品里几乎不会用到的颜色),再让程序跳过它。
一键得到透明 PNG
勾选“将洋红色 (#FF00FF) 设为透明”,所有恰好是这个颜色的像素在 PNG 中都会变成透明。结果列表会统计改动了多少个像素,方便你确认是否生效。
只做精确匹配
只有纯 #FF00FF 会被替换。接近洋红色的颜色(比如抗锯齿边缘)保持不变,所以这个选项绝不会侵蚀图案本身。
也有少数游戏用其他颜色作透明色,比如纯绿或纯黑。本选项只处理最常见的洋红色,其他颜色建议在图片编辑器里去除。
BMP 与 PNG 一览对比
| BMP | PNG | |
|---|---|---|
| 压缩方式 | 通常不压缩 | 无损(Deflate 算法) |
| 典型截图大小 | 几 MB | 几百 KB |
| 透明 | 少见,支持程度不一 | 完整的透明通道 |
| 浏览器和应用能否打开 | 大多能打开,但网站很少接受 | 处处可用 |
| 最适合 | 简单程序和设备 | 截图、图标、图形、网页 |
什么时候该把 BMP 转 PNG
只要图片里有锐利边缘、纯色块或文字,PNG 就是 BMP 最自然的替代格式。
适合转 PNG 的图片
- 老版 Windows 工具生成的截图和软件窗口。
- 图标、鼠标指针和像素画。
- 示意图、图表和标志。
- 精灵图和游戏贴图,必要时配合洋红色选项。
什么时候 JPG 更好
照片和扫描图片里有细微的噪点,无损压缩很难把它们压小。这类图片用 BMP 转 JPG 能得到小好几倍的文件,肉眼看不出差别。
有理由保留 BMP 的情况
有些设备、开机画面和单片机显示屏只接受 BMP 输入。这些场合请保留原文件,其他地方都用 PNG。
BMP 转 PNG 之后
想把 PNG 再压小一些,可以用 压缩 PNG 处理一遍。用于网站时,PNG 转 WebP 能得到更小的文件,并保留透明;调整图片尺寸 可以设定精确的尺寸。