差在哪:一个是记账,一个是概括
这是理解所有格式问题的起点。
PNG 是无损压缩。它像记账——把每个像素的颜色原原本本记下来,然后用一套聪明的编码把重复的部分缩写。解压之后,一个比特都不差。代价是:如果图里每个像素都不一样(照片就是这样),它几乎压不动。
JPG 是有损压缩。它像概括——把画面分成 8×8 的小块,用数学变换描述“这块大致是什么颜色、变化有多剧烈”,然后丢掉人眼不敏感的高频细节。照片里全是渐变的天空、皮肤、树叶,这种“丢掉一点也看不出来”的空间非常大,所以能压到十分之一甚至更小。
| PNG | JPG | |
|---|---|---|
| 压缩方式 | 无损 | 有损 |
| 透明背景 | 支持 | 不支持 |
| 适合的内容 | 图标、线稿、纯色块、文字 | 照片、渐变、复杂纹理 |
| 同样观感的体积 | 大(照片上可能大 10 倍) | 小 |
| 反复编辑 | 不掉画质 | 每次都掉一点 |
该转的三种情况
- 照片存成了 PNG。这是最常见也最冤的情况。用截图工具截照片、从设计软件导出照片、从某些网站保存图片,都可能得到一张几十兆的 PNG。转成 JPG,体积通常直接掉到十分之一,观感几乎不变——因为照片本来就没有 PNG 擅长压缩的那种“大片相同颜色”。
- 要发给别人、传上网。邮件附件、表单上传、微信传输,对方几乎不会在意你是不是无损,只在意能不能打开、要等多久。PNG 在这里是纯浪费。
- 图里有大面积渐变背景。PNG 对这种平滑渐变反而效率低(每个像素都在细微变化),转 JPG 收益很大。
不该转的三种情况
- 需要透明背景。这是硬伤。JPG 格式从设计上就没有透明通道,转出来必然要填一个底色。详见下一节。
- 图标、Logo、线稿。这类图颜色数量少、边缘锐利,PNG 能把它们压得很小;而 JPG 会在边缘产生一圈模糊的“振铃”,放大看很脏。这种图转 JPG 是纯亏——体积没省多少,质量还掉了。
- 还要继续编辑。JPG 每保存一次就再损失一点。要反复改的图,留在 PNG 里,最后出图时再转。
一句话判断:看这张图是不是“每个像素都不一样”。是,转 JPG;不是,留 PNG。
透明背景转 JPG,到底会变成什么样
这是转换时最常踩的坑,而且不同工具的默认行为不一样,有的填白、有的填黑、有的填灰。
本工具的处理是填白色底——因为绝大多数用途(打印、上传、网页展示)默认底色就是白的,填白最不容易出意外。
但你要清楚这不等于“透明被保留了”。如果你需要的是一张带透明背景的 JPG,这件事本身自相矛盾,JPG 做不到。真要透明,选 WebP 或留 PNG。
另一个常见现象:透明区域边缘的毛发、阴影会变脏。因为这些像素原本是半透明的,程序会把它们和白色混合,边缘出现一圈发白的毛边。对这类图,正确做法是先在原软件里把背景处理干净,别指望格式转换能救。