如何把 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 试试
在浏览器里压缩,免费,不上传任何文件。
打开压缩工具