透明到底是什么
图片里每个像素通常有三个数字:红、绿、蓝。支持透明的格式会再加第四个数字——透明度(叫 alpha 通道)。
透明度为 0 表示这个像素完全透明;为 255 表示完全不透明。所以你在一张透明 PNG 上看到的「灰白格子」,其实是看图软件为了让你看清透明区域而画的背景,图片本身在那个位置什么都没有。
哪些格式支持透明
| PNG | 支持,网页素材首选 |
|---|---|
| WebP | 支持,而且体积更小 |
| GIF | 只支持「全透明或全不透明」,边缘会有锯齿 |
| SVG | 支持(矢量图本身没有背景) |
| JPG | 不支持 |
| BMP | 常见版本不支持 |
| ICO | 支持 |
为什么转成 JPG 之后透明区域变成白色(或者黑色)
因为 JPG 根本没有 alpha 通道,只有 RGB 三个数字。当一张透明图要存成 JPG 时,必须给那些「什么都没有」的像素编造一个颜色。不同软件的处理方式不一样:
- 大多数软件(包括本站在内的转换工具)默认填白色;
- 有些老软件什么也不填,那块区域就变成黑色;
- 还有一些会把透明区域叠到白色上,得到的结果和第一种一样。
这不是 bug,是格式本身的限制。如果你需要保留透明背景,就不要存成 JPG。
那需要 JPG 的时候怎么办
三个办法,按场景选:
- 换底色,而不是删掉透明。图片最终要放在深蓝色背景的 PPT 上,就把透明区域填成深蓝色。PNG 转 JPG时可以在选项里指定填充色。
- 改成 WebP。WebP 既能透明、体积又和 JPG 一个量级,几乎所有现代软件和浏览器都认它。转成 WebP 通常是最优解。
- 干脆保留 PNG。如果只是网页上用,PNG 的透明和画质都最稳,代价是文件大一点。
做网页素材时的实践建议
- Logo、图标这类要放在任意背景上的素材,导出成 WebP 或 PNG,永远不要转成 JPG。
- 透明图的边缘如果是「半透明」过渡(专业叫羽化边缘),转成 JPG 之后那圈半透明像素会被强行填成实色,边缘会变得毛糙——这是转 JPG 最常见的翻车点。
- 需要给图标做 ICO 时不必担心:ICO 同样支持透明,Windows 和浏览器都认。
- 做深色模式适配时,透明图标里的黑色线条会「消失」在深色背景里。给这类图标加一圈浅色描边,或者用双色版本。
动手试试
用PNG 转 JPG可以指定填充色;想保留透明就用PNG 转 WebP。两个工具都在浏览器本地运行,图片不上传。