GIF 优化只有三根杠杆,各自都有代价
GIF 之所以重,原因只有一个:它用 1980 年代设计的压缩方案存下一整个序列的完整索引图。它 没有运动预测,所以一帧哪怕只比上一帧变了一点点,代价仍然接近于重画一张。这就只剩下三样 东西可以交换。
第一是颜色。每一帧从一张最多 256 项的色板里取色,把它砍到 128 或 64 会让文件变小,而在 扁平图形、录屏和线稿上几乎看不出来。第二是缩放比例,而且它最可预测:宽度减半,像素数就 变成四分之一。第三是帧率,放在最后是因为它是人最容易察觉的那个 —— 它改变的是动作的手感, 而不是任何单帧的样子。
什么时候该停止优化、直接换格式
如果源素材是视频画面,那么再怎么优化 GIF 都赢不了。照片场景里每一帧几乎处处都和上一帧 不同,而这恰恰是 GIF 完全没有办法、现代视频编码却正是为之而生的情况。同一段片子做成 MP4 通常只有四分之一的体积,而且更好看;本站有一个 GIF 转 MP4 的页面就是干这个的。
什么时候该留在 GIF:目的地就是需要它 —— 一个会自动播放的普通图片标签、一个不支持内联视频 的聊天工具或论坛、一份邮件模板,或者老到根本用不了 video 元素的软件。
怎么读结果
每次运行之后,这一行上都会标出省了多少,所以对比的是一个数字而不是一种印象。一次只改一个 控制项然后点应用;把杠杆分开的意义,就在于你能看清楚是哪一个换来了体积下降,哪一个只是白 花了画质。
所以真正有效的 GIF 压缩优化方法是:一次只改一件事,留下代价最小、收益最大的那个版本。想要 减小 GIF 体积,先从颜色开始,几乎总是对的。
全部过程都在你的浏览器里完成。单个文件最大 500 MB,不会到达服务器,引擎只下载一次,之后 由浏览器缓存。