GIF vs PNG
两者都能存照片,但取舍不同。以下是它们真正的差别,以及该怎么选。
一句话结论
只要是静态图,PNG 在每一个维度上都胜过 GIF,而且已经胜了二十年。至于动图,诚实的答案通常是两个都别用 —— 用视频。
这个问题从哪来
GIF 活到今天靠的是文化惯性,不是技术优势。人们拿它和 PNG 比,通常出于两个原因之一:手上有张老 GIF 想现代化,或者想要一个动图、而 GIF 是他们唯一叫得出名字的动画格式。这是两个不同的问题,而第二个的最佳答案比本页标题暗示的要好。
逐项对比
| 属性 | GIF | PNG |
|---|---|---|
| 压缩方式 | 无损 | 无损 |
| 透明通道 | 支持 | 支持 |
| 典型文件大小 | 约为同等 JPEG 的 200-400% | 约为同等 JPEG 的 300-500% |
| 兼容性 | 几乎所有软件都能打开,包括很老的程序 | 几乎所有软件都能打开,包括很老的程序 |
| 常见来源 | 为减小页面体积而优化的网站 | 截图、logo 和图形素材 |
真正的差别在哪
GIF 每帧只有 256 色
这是它的根本约束,也是 GIF 照片看起来满是抖动噪点的原因。PNG 有完整的 24 位色再加 8 位透明通道。任何带渐变、照片或细腻明暗的图,在 GIF 的调色板下都在被实实在在地破坏,而且破坏是烧死的 —— 把那张 GIF 转成 PNG 只会原样保住抖动,不会还原它。
GIF 的透明只有一位,PNG 有 256 级
GIF 的像素要么全透明、要么全不透明,没有半透明可言 —— 这就是为什么 GIF 的 logo 放在非预设背景上会露出锯齿状台阶边。PNG 的 8 位透明通道允许平滑的抗锯齿边缘,压在任何颜色上都对。对 logo 或图标来说,光这一条就能定案。
PNG 确实能动 —— 但那不是你要的解法
APNG 就是动画 PNG,当前所有浏览器都支持。它有完整色彩和真正的透明通道,所以在画质上确实是动画 GIF 的升级。但它依然是一串完整帧、没有运动补偿,所以几秒钟的类视频内容还是巨大。同一段片子做成 MP4 或 WebM,体积通常小 10~20 倍。
该用哪个
这些情况用 GIF
基本上没有新场景。只有当某个平台除了它什么都不收、或者文件早就存在且重编码毫无收益时,才值得继续用 GIF。
这些情况用 PNG
所有静态场景:logo、图标、截图、线稿,以及任何需要干净透明或超过 256 色的图。
一个常见的坑
如果你是为了录屏来的,答案是视频文件
演示片段和录屏导出成 GIF,几秒钟动辄几十 MB,因为每一帧都是整帧存下来的。同一段录制做成 MP4 或 WebM,体积只是零头,还更清晰,在所有要紧的平台上都能内联播放。GIF 仅剩的优势是在那些屏蔽视频的地方能静音自动播放 —— 而这份名单正在变短。