跳到主要内容
GifSmaller

如何把 GIF 变小又不损失画质

阅读约 3 分钟

GIF “太大”通常有两种情况:文件体积超过了平台上限,或者尺寸比实际显示的地方大得多。好消息是,大多数 GIF 里都有大量冗余,通常两种问题都能解决,而且几乎看不出区别。

1. 先做无损优化

无损优化会重新编码 GIF,但不改变任何一个可见像素。它会:

  • 每一帧只保存真正变化的区域,而不是整帧;
  • 把没变化的像素标记为透明,让它们更容易压缩;
  • 删除没用到的调色板颜色和元数据。

从视频剪辑软件、录屏工具和表情包 App 导出的 GIF 往往没有优化过,仅这一步通常就能省下 10%–40%。GifSmaller 总是先做这一步。

2. 加一点有损压缩

如果无损还不够,有损压缩允许编码器轻微改动像素,换取高得多的压缩率。低到中等级别时几乎看不出变化;级别很高时会出现颗粒或噪点,渐变区域尤其明显。

有损级别 一般效果
20–60 基本看不出,适合作默认值
60–120 渐变和暗部有轻微颗粒
120–200 噪点明显,只在必须达到硬性上限时使用

GifSmaller 的 均衡 模式使用较轻的级别;设定目标大小时,它会寻找能满足目标的最轻级别。详见 有损与无损 GIF 压缩。

3. 减少颜色数

GIF 每帧最多 256 色。卡通、界面录屏和文字动画用 64 或 128 色往往看起来一样;而带渐变的照片类 GIF 减色后容易出现色带。如果有损压缩还不够,可以在 高级 模式里试试。

4. 缩小尺寸

文件体积大致和像素数量成正比,宽高各减半,像素数就少了 75%。这是效果最强的一步,尤其适合本来就显示得很小的场景:

  • Discord 和 Slack 表情最大只显示 128×128 px;
  • 聊天软件和文档里,GIF 很少显示得比 400–600 px 更宽。

只有在无损和有损都达不到目标时,GifSmaller 才会缩小尺寸;表情类预设会自动缩放到 128 px。

5. 减少帧数或剪短

每一帧都会增加数据。把长 GIF 剪掉几秒,或者给高帧率 GIF 隔帧删除,体积可能直接减半。不过这会改变动画本身,建议在编辑器里处理好再压缩。

该用哪种方法?

  • 需要满足大小上限(Discord、Slack、X、邮件):在 GifSmaller 里选对应目标,让它自动挑最轻的组合。
  • 只想更小、看起来不变:用 均衡。
  • 清楚自己要什么:用 高级,自己设置有损程度、颜色数和尺寸。

GifSmaller 在浏览器里运行,GIF 不会离开你的设备,下载前还可以对比压缩前后的预览。

用你的 GIF 试试

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

打开压缩工具

常见问题

把 GIF 变小最快的方法是什么?

打开 GifSmaller,选择「均衡」(或 256 KB 之类的目标),把 GIF 拖到页面上。几秒钟内就会在浏览器里完成压缩,下载即可。

能完全无损地减小 GIF 吗?

可以,但有上限。无损优化会去掉冗余数据和帧间没变化的像素,一般能省 10%–40%。再往下压,就一定要拿一点画质换体积。

把 GIF 变小会改变播放速度吗?

压缩、有损、减色、缩放都不会改变帧时间。只有删掉帧才会影响动画的播放。