调整颜色数、帧数或尺寸,缩小 GIF 动图的体积。循环次数和播放时长不变,文件不会上传。
动图或静态 GIF,在浏览器里读取
将图片拖到此处,或点击选择
仅限 GIF · 最多 10 个文件 · 每个最大 50 MB
几秒钟的屏幕录制导出成 GIF,动辄好几 MB,发不出去是常有的事。原因在格式本身:GIF 的每一帧都带一份最多 256 色的调色板,帧数、尺寸和颜色数一多,体积就往上走。这个页面会把动图逐帧解码,只保存相邻两帧之间变化的像素,再按你的设置减少颜色、抽掉部分帧或缩小画面,然后重新编码。想压缩 GIF 动图又不愿意把文件交给陌生服务器,可以直接用:解码和编码都在浏览器标签页里完成,原文件不会上传。
GIF 用的是无损的 LZW 压缩,没有 JPEG 那种可以调低的“质量”参数。体积主要由三项决定:保存了多少像素、这些像素用了多少种颜色、同一行里相同的值连续出现得有多长。屏幕录制导出时如果每一帧都完整写入,静止的背景会在每一帧里重复保存,这是最臃肿的一类。
工具先把每一帧还原成浏览器实际显示的样子,透明区域以及三种帧处理方式(保留、清为透明、恢复上一状态)都会先应用。随后拿它和屏幕上已有的画面比较,只写入发生变化的那块矩形,矩形里没变的像素改成透明。连续的相同值正是 LZW 最擅长压的,所以背景固定的录屏、界面操作演示,压缩幅度往往最大。
每帧颜色数可选 256、128、64、32、16。色块分明的图标、界面截图降到 64 色通常还看不出差别;照片和渐变色降得太低会出现明显的色带。
保留的帧有“全部”以及每 2、3、4 帧留 1。被抽掉的帧,其延时会并入前面保留下来的那一帧,一段 1.2 秒的循环抽帧后依然是 1.2 秒,只是动作没那么连贯。
缩放可选 100%、75%、50%,按面积平均缩小。宽高各缩一半,像素数只剩四分之一,这往往是三项里见效最快的一项。“忽略细微像素变化”(0 到 24)让每个通道变化不超过该值的像素沿用上一帧的颜色,用来去掉视频转 GIF 时抖色产生的闪烁噪点。
三个预设是这些参数的组合:轻度为 256 色、全部帧、原尺寸;均衡为 128 色、全部帧、原尺寸,忽略 4 级以内的变化;强力为 64 色、每 2 帧留 1、缩到 75%,忽略 12 级以内的变化,体积降得最多,画质损失也看得出来。
测试文件是 320×200、30 帧、每帧 40 毫秒的 GIF(共 1.2 秒,无限循环),每帧都完整写入,原始大小 429,740 字节。在 Chrome 中,选“均衡”得到 117,972 字节,仍是 30 帧,体积减少 72.5%;选“强力”得到 34,086 字节,尺寸 240×150,15 帧,总时长仍是 1.2 秒。
这是一个故意做成“每帧全写”的样本,已经优化过的 GIF 不会有这么大的降幅。对这类文件,重新用 256 色编码甚至可能多出几个字节。结果不比原文件小时,页面会提示“没有变小,保留原文件”,下载的是原文件,不会给你一个更大的副本。
很多聊天工具、论坛和代码托管平台对上传的动图有体积上限,自定义表情的限制通常比普通附件严得多,具体数值各家不同,也会调整,以官方说明和当前的上传提示为准。做 README 演示图或发邮件附件时,可以先试“均衡”。
如果还是超限,建议先缩放到 50%,再考虑抽帧:画面小一点但动作流畅,比原尺寸却一卡一卡的观感更好。表情位如果要求固定边长,可以先到 GIF 尺寸调整页把边长定下来,再回到这里压体积。
一次最多添加 10 个 GIF,每个不超过 50 MB。帧是逐帧处理的,内存占用不高;所有帧的像素总量(帧数×宽×高)超过 4 亿时,页面会直接给出提示而不会硬跑。
添加 GIF
把最多 10 个 GIF 拖到页面上,或从设备里选择。不是 GIF 的文件会被跳过并给出提示。
选预设或自定义
先用“均衡”试一次;也可以自己调每帧颜色数、保留的帧、缩放和忽略细微像素变化。
点击压缩
点“压缩”后,每一行会显示新的文件大小、帧数和尺寸,预览区把结果和原图并排播放,方便你对比。
下载
单个 GIF 直接下载,多个可以点“全部下载”。如果某个结果没有变小,得到的是原文件。