要压缩 GIF 又看不出画质损失,就用免费的 GIF 压缩工具,先设颜色数 64、每 2 帧保留一帧、缩放比例 75%,再把造成肉眼可见损伤的那一项往回调。每次处理后,工具都会显示原文件大小和新文件大小,下载前就能对比。处理在你的浏览器里完成:文件不会上传,不需要账号,也不消耗积分。
这里说的「不损失画质」,是指在别人实际看到的尺寸下,结果和原图播放起来看着一样。它不代表像素完全相同。这个压缩工具的每个设置都会删掉数据(颜色、帧或像素),所以保持 256 色、保留每一帧、缩放比例 100% 时,GIF 几乎不会变小。无损优化工具只是换一种方式存储同样的像素,所以能省下的空间,最多就是文件里原本浪费掉的那部分。
快速回答:先调低哪个设置?
代价最小的设置取决于 GIF 里是什么内容。先调低第一项,检查结果,然后再动第二项。
| GIF 类型 | 先调低 | 起始值 | 然后 | 保持较高 |
|---|---|---|---|---|
| 屏幕录制、界面演示、扁平图形 | 颜色数 | 64,再试 32 | 每 2 帧保留一帧 | 缩放比例,让文字保持清晰可读 |
| 照片、视频片段、渐变 | 缩放比例 | 75%,再试 50% | 每 2 帧保留一帧 | 颜色数保持在 128 到 256 |
| 像素画、精灵图 | 颜色数 | 原画本身的颜色数,比如 16 或 32 | 尽量不再动其他设置 | 缩放比例 100%,保留每一帧 |
| 表情或贴纸 | 像素尺寸(在 GIF 尺寸调整里改) | Discord 表情预设(128 × 128) | 颜色数 64 | 帧时长 |

为什么不同类型的 GIF 损失画质的方式不同
扁平图形和屏幕截图由少量纯色构成。把色板减到 64 或 32 色,去掉的是画面里几乎没用到的色阶,所以很难看出变化。这类内容有风险的是缩放比例,因为画面一缩小,界面里的小字就会变糊。
照片和视频片段的颜色分布在大量色阶上。降到 64 色后,平滑的天空和皮肤会出现明显的色带。缩放对这类内容的代价更小:缩到 75% 时,每帧大约保留 56% 的像素(0.75 × 0.75),主要损失的是细微纹理。
像素画依赖清晰的像素边缘。75% 这样的非整数缩放比例,无法让每个源像素都对应到整数个输出像素,所以边缘会变得参差不齐。如果原画只用了 16 种颜色,把色板设为 16 色,几乎不会删掉你画的东西。
丢帧对每种类型的作用都一样。每 2 帧保留一帧会让帧数减半,每丢掉一帧,压缩工具就把它的时长加到保留下来的那一帧上。因此循环一遍的时长和原来一样,但动作会变得更卡顿:两个 40 毫秒的帧会变成一个 80 毫秒的帧。慢速动作能很好地掩盖这一点,快速动作就会露馅。
如何一步步压缩 GIF
- 先确认文件符合限制。 压缩工具接受最大 20 MB、最多 120 帧、每边不超过 1600 像素的 GIF,所有帧加起来不能超过 1200 万像素。
- 用默认设置跑一次。 设为颜色数 64、每 2 帧保留一帧、缩放比例 75%。如果新文件小于你的目标大小,效果也没问题,就直接下载。
- 先回到无损的基准设置。 设为 256 色、保留每一帧(数值 1)、缩放比例 100%。这是你的基准,文件几乎不会变。
- 把第一项调低一档。 按上表选择先调哪一项。颜色数可以按 256、128、64、32、16 逐档调。缩放比例可以试 100%、90%、75%、60% 和 50%。跳帧设置从每 1 帧保留一帧调到每 2 帧,再调到每 3 帧。
- 按实际显示尺寸对比。 把结果和原图放在一起,按真实显示尺寸播放。检查渐变有没有色带、小字有没有变糊、快速动作有没有跳动。
- 出现损伤就换一项调。 把第一项退回一档,再用同样的方式开始调低第二项。
- 保留原文件。 每次有损压缩都会再丢掉一些数据,所以重试时要从原文件开始,不要从压缩过的副本开始。
循环设置沿用原 GIF,帧延时按 1/100 秒的精度保留。
如何把 GIF 压到指定大小以下,比如 256KB
压缩工具没有目标大小输入框,所以不能填一个数字就得到那个大小的文件。把处理后显示的文件大小当作参照,按上面的步骤逐步调整,直到低于限制。
如果显示尺寸是固定的,先设好像素尺寸。GIF 尺寸调整工具有 Discord 表情预设,输出正好是 128 × 128;还有 Twitch 表情预设,输出 112 × 112。只调整尺寸不保证文件变小,所以之后还要再用压缩工具跑一次。Discord 帮助中心表示,自定义表情文件必须小于 256KB。这种情况的完整做法见如何把 GIF 调成 Discord 表情的尺寸。
GIF 没有变小怎么办
结果变大或不变都有可能,所以每次都要看前后两个数字。如果两者差不多,按顺序做下面这些检查:
- 确认确实调低了某一项。 在 256 色、保留每一帧、缩放比例 100% 时,几乎没有可删的数据。
- 试一项还没动过的设置。 屏幕录制可以改成每 2 帧保留一帧;照片类 GIF 可以试 50% 缩放。
- 匹配实际显示尺寸。 放在聊天窗口或网页小区域里的 GIF,不需要 1600 像素宽的帧,所以先把它调整到那个位置的尺寸。
- 从原始帧重新制作。 如果你还留着原始 PNG 帧,重新制作可以避免对已经压缩过的 GIF 再压一次。PNG 转 GIF 工具最多接受 60 张 PNG,所有帧共用一个间隔,范围 20 到 2000 毫秒。具体步骤见如何用 PNG 图片制作动图 GIF。
- 想一想格式本身。 如果文件只有在出现明显损伤后才能达标,限制就来自 GIF 格式本身。改用循环播放的视频也有自己的代价,并不是更好的 GIF;只收 GIF 的地方也不会接受视频(Discord 帮助中心把 GIF 列为动图表情的格式)。这里的六个免费 GIF 工具都不能转换成视频。
常见问题
能完全无损地压缩 GIF 吗?
真正无损的 GIF 压缩只能去掉文件里原有的浪费,所以能省的空间有限。这里的压缩工具本身就是有损的,在 256 色、保留每一帧、缩放比例 100% 时,文件大小几乎不变。更实际的目标是看不出损失。
哪个设置减小 GIF 体积时变化最不明显?
变化最不明显的设置取决于内容:屏幕录制和扁平图形调颜色数,照片和视频片段调缩放比例。两类内容的第二选择都是丢帧,因为循环时长不变,只是动作会更卡顿。
为什么压缩后的 GIF 大小不变,甚至更大?
本来就编码得很紧凑的 GIF,重新编码后可能大小不变,甚至变大。压缩工具不保证文件一定变小,所以可以调低一项还没动过的设置,或者先把尺寸调整到准确的显示尺寸。
免费的在线 GIF 压缩工具一定要上传文件吗?
不一定。本站的 GIF 压缩工具从不上传你的文件,所有帧都在你的浏览器里本地处理。不需要账号,也不消耗积分。
我的 GIF 超出了浏览器工具的限制,怎么办?
超出浏览器限制的 GIF 要先删减帧或缩小尺寸才能处理:上限是 20 MB、120 帧、每边 1600 像素,所有帧加起来 1200 万像素。先用电脑上安装的图片编辑软件删帧或缩小画布,再把变小的文件拿回来调颜色数和帧。
AnimateImage 的六个 GIF 工具都在浏览器里运行,免费且不需要账号。
