PNG vs JPEG
两者都能存照片,但取舍不同。以下是它们真正的差别,以及该怎么选。
一句话结论
这不是「画质对体积」的选择,是**内容类型**的选择:照片归 JPEG,文字、线条和纯色块归 PNG。
这个问题从哪来
这是网上最古老的一个对比,也是被答得最差的一个。那句常见的简化 ——「PNG 画质高,JPEG 体积小」—— 严格说不算错,但它不断把人引到错的文件上:一张 6MB 的 PNG 度假照,或者一张每个字母周围都泛着灰毛的截图 JPEG。真正有用的判断标准和质量档位无关,只和**画面里是什么**有关。
逐项对比
| 属性 | PNG | JPEG |
|---|---|---|
| 压缩方式 | 无损 | 有损 |
| 透明通道 | 支持 | 不支持 |
| 典型文件大小 | 约为同等 JPEG 的 300-500% | 约为同等 JPEG 的 100% |
| 兼容性 | 几乎所有软件都能打开,包括很老的程序 | 几乎所有软件都能打开,包括很老的程序 |
| 常见来源 | 截图、logo 和图形素材 | 数码相机与照片分享 |
真正的差别在哪
两者的压缩机制正好相反
JPEG 丢掉的是你眼睛不敏感的细节 —— 主要是细微色彩变化和高频噪声 —— 在构成照片的连续渐变上它做得很好。PNG 什么都不丢,转而在成行像素里寻找精确重复,这种重复在截图里遍地都是、在照片里几乎没有。给各自设计时面向的内容,两者都能给出小文件;对调一下,两者都给出糟糕的结果。
只有 PNG 扛得住反复保存
JPEG 每被打开、编辑、再保存一次,就重新压缩一次,又损失一点。来回十几次,边缘就会出现块状噪点。PNG 无论往返多少次都是逐字节相同的。如果一个文件是**正在用的工作文件**而不是最终成品,光这一条就能定案。
透明只有 PNG 有
JPEG 没有透明通道。把带透明的 PNG 转成 JPEG 不会得到「透明的 JPEG」—— 透明区域会被填成纯色,通常是白或黑,看工具而定。最常见的受害者是 logo:本来干净地浮在透明上,变成了压在白矩形里的图案,放到任何有色背景上都露馅。
该用哪个
这些情况用 PNG
含文字的截图、logo、图标、示意图、线稿、任何需要透明的素材,以及任何之后还要再编辑的文件。
这些情况用 JPEG
照片以及照片级的渲染图 —— 在这类内容上 PNG 看不出任何好处,却要多付三到五倍的体积。
一个常见的坑
照片的截图,本质还是照片
「截图用 PNG」这条规则跟的是内容,不是文件怎么来的。你截一张全屏照片、一帧视频、或者一张卫星影像地图,抓到的就是连续色调数据。PNG 会为此存下好几 MB,却换不来任何好处。看画面里实际是什么,而不是看你按了哪个键。