透明浏览器窗口和两块分别标为 WebP 与 AVIF 的图像放大示意

同样约 100 KB,博客截图用 WebP 还是 AVIF?我拿自家首页测了一遍

  • 2026-11-15
  • Web开发
  • 图片压缩 网站性能
  • --

给博客放一张界面截图时,我希望它打开得快,也希望别人能看清里面的字。那如果一张图最多只留 100 KiB,WebP 和 AVIF 哪个更合适?我拿博客里的背景素材、首页截图和透明 Logo 跑了一次。结果里最有意思的是首页截图,两种格式都压到约 98 KiB,文件大小几乎一样,小字附近的像素误差却有明显差别。

先把体积和尺寸定住

背景素材和截图都等比缩到 1280 像素宽,缩放后的像素作为参考。对每个格式从高到低试一组质量参数,取第一个不超过 **100 KiB(102,400 字节)**的结果。WebP 和 AVIF 的质量参数不在同一把尺上,所以我给它们同一个文件大小上限,再看压完的图离参考图有多远。

博客素材WebPAVIF
背景素材,1280 × 71790.4 KiB,33.98 dB96.9 KiB,37.04 dB
首页截图,1280 × 75698.2 KiB,37.81 dB97.2 KiB,43.07 dB

表里用 PSNR 记像素误差。对同一张参考图,数值越高,解码后的 RGB 像素整体偏差越小。背景图里 WebP 比 AVIF 少用了约 6.5 KiB,比较时要把这点算进去。截图两版才差不到 1.1 KiB,更接近同体积比较。

把注意力放到真正要读的那行字

我从三版里裁了同一块。自上而下是缩放后的参考图、WebP、AVIF。对照图用 PNG 保存,裁图后没有再做有损压缩。

首页文章卡片的同一区域,上为参考图,中为 WebP,下为 AVIF

在这个尺寸下,两版正文都能读。放大看标题上方的浅灰日期和正文笔画时,可以留意文字旁边本来平滑的浅色背景。只对这块区域重算,WebP 是 38.59 dB,AVIF 是 42.07 dB。这张图如果要在教程里保留图内小字,我会先试 AVIF。更实用的一步是截小一点,把需要读的操作面板单独放大,别把整页一起挤进一张图。

透明 Logo 可以先试一次无损

最后测一张 512 × 512 的透明 Logo。同尺寸重新编码,PNG 是 265.4 KiB,无损 WebP 是 187.7 KiB,文件缩小约 29%。我解码比较了透明度和所有非全透明位置的颜色,结果一致。完全透明像素下的 RGB 有变化,所以如果图要留作设计源文件,我会把原 PNG 也留着。

三张素材给我留下一个很实际的工作顺序。先定图片在网页上要展示多宽,再试体积。背景图看整张的观感和体积,带字截图先看小字,透明 Logo 则先试无损。遇到平台只收某些格式,就在平台支持的范围内做同样的检查。常见网页图片格式

怎么复测

这次用 Sharp 0.32.6(libwebp 1.3.2、libaom 3.7.0)。参考图转成 sRGB,按 1280 像素宽等比缩放,小图不放大。有损档位从 100 到 5,每次降 5,WebP 和 AVIF 的 effort 都用 4,AVIF 用 chromaSubsampling: '4:4:4'。背景图取到的 WebP / AVIF 质量参数是 75 / 55,截图是 85 / 75。Logo 的 PNG 用压缩级别 9 和自适应滤镜,无损 WebP 用 lossless: true 和 effort: 4。文件大小以输出字节数计算,PSNR 用解码后的 RGB 样本计算。这次只测了博客里的三张素材和这些编码设置。Sharp 输出选项

如果只想先把过宽的素材批量改成实际要用的尺寸,我在 Maple 工具箱介绍页 留了入口。

Maple
Maple
© 2025 by Maplezz 本文基于 CC BY-NC-SA 4.0 许可 CC 协议 必须注明创作者 仅允许将作品用于非商业用途 改编作品必须遵循相同条款进行共享 最后更新:未知