跳到主要内容
GifSmaller

有损与无损 GIF 压缩

阅读约 2 分钟

GIF 压缩分为两类。理解它们的区别,才能得到既最小又好看的文件。

无损:像素不变,数据更少

GIF 把每一帧存为调色板索引,并用 LZW 压缩。无损优化保持每个像素不变,只是存得更高效:

  • 帧差分:只保存和上一帧相比发生变化的矩形区域;
  • 透明化:把没变化的像素标记为透明,更利于压缩;
  • 清理调色板:去掉没用到的颜色和多余的元数据。

通常能省 10%–40%,结果与原图逐像素一致。没有理由不做,所以 GifSmaller 总是从这一步开始。

有损:像素略有不同,数据少得多

有损 GIF 压缩(gifsicle 的 --lossy 参数)允许编码器在能让 LZW 压缩得更好时,选用相近的像素值。结果仍然是 GIF,帧时间不变,只是细节略有变化。

无损 有损
像素会变吗? 不会 轻微变化
额外节省 — 通常 30%–70%
可见瑕疵 无 级别高时有颗粒、噪点
适用场景 所有 GIF 需要满足大小上限时

瑕疵最先出现在平滑渐变、天空和肤色上;卡通纯色和文字则不太容易看出来。

其他减小 GIF 的方式

有损和无损并不是全部手段:

  • 减少颜色(如 256 → 64):适合扁平图形,照片会出现色带;
  • 缩小尺寸:效果最强,体积随像素面积变化;
  • 减少帧数:会改变动画,需要有意为之。

GifSmaller 怎么选

设定目标大小时,GifSmaller 会先做无损,再寻找能满足目标的最低有损级别,最后才缩小尺寸。在 高级 模式下,你可以自己设置有损程度、颜色数和尺寸,并对比预览。分步说明见 如何把 GIF 变小。

用你的 GIF 试试

在浏览器里压缩,免费,不上传任何文件。

打开压缩工具

常见问题

无损 GIF 压缩真的完全无损吗?

是的。解码后的每一帧和原图逐像素一致,改变的只是数据的存储方式。

有损级别应该设多少?

从低值开始(约 30–60)。如果仍然太大,再逐步调高并对比预览。超过 120 左右时,颗粒感通常会比较明显。

有损压缩会减少颜色数吗?

不会,那是另一个设置。有损压缩改变的是像素的编码方式,减色限制的是调色板,两者可以同时使用。