三种格式,一个问题:谁能给你最小的文件,画面还好看、还到处都能打开?就纯压缩率而言,老实的排名是 AVIF > WebP > JPEG。但"最小"并不是唯一重要的事,而且 AVIF 有一个实用层面的坑,大多数对比文章都跳过了。我们来把它讲清楚。
快速对比

| JPEG | WebP | AVIF | |
|---|---|---|---|
| 发布年份 | 1992 | 2010 | 2019 |
| 压缩 | 基准 | 比 JPEG 小约 25–35% | 比 JPEG 小约 50% |
| 透明(alpha) | 不支持 | 支持 | 支持 |
| 动画 | 不支持 | 支持 | 支持 |
| 色深 | 8 位 | 8 位 | 最高 12 位、HDR |
| 浏览器支持 | 全面 | 全面 | 很好,略微落后 |
| 编码速度 | 快 | 快 | 慢 |
纸面上,AVIF 几乎每一行都赢。它压得最狠,支持透明和 HDR,在很小的文件体积下依然干净。WebP 稳稳坐在中间——比 JPEG 小、全面支持、没有幺蛾子。JPEG 是老可靠:它不能做透明或动画,但地球上每一台设备、每一个软件、每一个邮件客户端都认它。
没人提的 AVIF 之坑

这是你在围绕 AVIF 做规划前必须知道的部分。浏览器能解码 AVIF,却无法可靠地从 canvas 编码它。 网页内置的图片导出路径(canvas.toBlob)根本无法以稳定、跨浏览器的方式产出 AVIF。要把 AVIF 编码好,需要大量计算,而浏览器的 canvas API 并不提供这种能力。
这在实践中意味着:一个纯浏览器端的工具能显示 AVIF,却无法可靠地生成它。所以当你在浏览器端转换工具里把 AVIF 选为导出目标时,明智的做法就是回退到 WebP——这里正是这么处理的。你依然得到一个现代、压缩良好的文件(比 JPEG 或 PNG 小),到处都能打开,也不会得到一个访客可能打不开的格式。这是一笔老实的交易:你损失了 AVIF 最后那一点压缩优势,换来全面兼容和即时转换。
如果你确实需要真正的 AVIF 文件,那就得用服务器端编码器或原生桌面工具。对绝大多数网页用途来说,WebP 让你拿到 90% 的好处,却没有任何编码上的头疼。
那你到底该选哪个?
- 在网站上发照片、想要最小又可靠的文件? 选 WebP。全面支持,比 JPEG 省很多,今天就能用浏览器工具搞定。
- 需要极致压缩、又能掌控整条流水线(服务器端)? 选 AVIF——在服务器端编码,而不是在浏览器里。
- 发邮件、打印,或喂给较老的软件? 选 JPEG。无聊,但永远好使。
- 需要透明? WebP 或 AVIF——绝不用 JPEG。
在浏览器里转换
图片格式转换工具完全在你的设备上用 Canvas 运行。什么都不上传、无需注册,首次访问后离线也能用。可以在 PNG、JPG、WebP 之间批量转换。如果你选了 AVIF,出于上面的原因它会透明地回退到 WebP——无论如何你都会得到一个小巧、到处都能读的文件。
一句话总结
对绝大多数发布到网页的人来说,WebP 是甜点位:比 JPEG 小得多、支持透明,而且到处都能用,包括在浏览器工具里。AVIF 在技术上是压缩冠军,但真正的 AVIF 编码属于服务器,而非你的浏览器。JPEG 则始终是那个后备格式——只要"最大兼容"胜过"最高效率",你就回到它。
