跳到正文
未明观测
返回

图片压缩与 AVIF 转换

编辑此页

做博客和静态站点时,图片往往是最容易失控的资源。页面慢、首屏重、仓库体积膨胀,很多时候都不是代码问题,而是图片没有处理好。

这篇文章整理一套够用的思路:先压缩,再转换,再检查颜色与元数据。

为什么优先考虑 AVIF

和传统 PNG、JPEG 相比,AVIF 往往能在相近画质下把体积压得更小,尤其适合:

但它也不是银弹。兼容性、编码耗时和调试成本都比 JPEG/WebP 更高,所以更适合构建阶段统一处理,而不是手工到处转。

在线压缩适合什么场景

如果只是偶尔处理少量素材,在线压缩工具足够快。它适合:

缺点也很明显:流程不可复现,参数不可追踪,不适合长期维护的内容站点。

avifenc 把 PNG 转成 AVIF

本地命令行的好处是稳定、可复用、可写进脚本。

avifenc --qcolor 85 --qalpha 85 --speed 0 --yuv 420 example.png example.avif

这条命令可以这样理解:

如果素材是插画、界面截图或带透明背景的图片,建议先用少量样本测试,再决定是否统一用同一组参数。

清理元数据

图片里常常带有拍摄信息、软件信息或其他无关元数据。对博客站点来说,这些内容通常没有保留价值。

exiftool -all:all= example.avif

清理元数据能进一步减小体积,但这里有一个常见坑:有些图片的颜色配置文件也可能被一起清掉,导致显示异常。

颜色配置文件问题

如果清理元数据后图片出现偏色、发灰或干脆无法正常显示,可以重新指定颜色配置:

magick example.avif -profile "/System/Library/ColorSync/Profiles/sRGB Profile.icc" fixed.avif

这个步骤的意义是把图片重新映射到更通用的 sRGB 配置,减少不同设备上的显示偏差。

一套更稳妥的处理顺序

我更推荐下面这个顺序:

  1. 先保留原图,永远不要在唯一源文件上反复覆盖。
  2. avifenc 做格式转换和第一轮压缩。
  3. 检查图片是否存在偏色、透明边缘异常或锐化过度。
  4. 再视情况清理元数据。
  5. 最后在页面里验证实际显示效果,而不是只看文件大小。

什么时候不要强上 AVIF

下面几种情况,未必值得转换:

优化的目标不是“所有图片都用最新格式”,而是“在可维护前提下,让页面更轻”。

结语

图片优化没有神秘技巧,核心就是三件事:控制尺寸、选择合适格式、避免无意义元数据。只要把这套流程固定下来,博客的加载体验通常会立刻改善一截。


编辑此页
Share this post on:

Next Post
PGP 签名验证教程