跳到主要内容

免费 GIF 压缩器

让 GIF 动图变小:压缩到限定大小以内,例如 Discord 的 256 KB 表情或 512 KB 贴纸,也可以自己选择颜色数、宽度和帧数。在浏览器中运行;GIF 不会被上传。

将文件拖放到此处,或点击浏览

GIF, HEIC, HEIF · 在你的设备上处理

或按 Ctrl+V 从剪贴板粘贴

浏览文件

你的文件永远不会离开你的设备。所有处理都在你的浏览器中本地进行。

工作原理

本页先读取 GIF 的大小和帧数,然后分两步使用 ffmpeg(编译为 WebAssembly,在浏览器中运行):先根据 GIF 自身的颜色生成调色板,再用该调色板重写每一帧,只保存每一帧中变化的部分。为了达到大小上限,它会先减少颜色,再隔帧保留,最后缩小宽度,直到文件符合要求。

  1. 1
    打开 GIF
    拖入 GIF 或点按“浏览文件”。会显示它的大小、帧数和时长。
  2. 2
    选择目标
    选择“压缩到指定大小”并设定上限,例如 Discord 表情(256 KB)或贴纸(512 KB),或选择“自选设置”来调整颜色数、宽度和帧数。
  3. 3
    压缩
    点按“压缩 GIF”。首次运行会下载一次视频引擎,之后即可离线使用。
  4. 4
    对比并下载
    两个 GIF 并排播放,并显示各自的大小。下载较小的那个。

你的 GIF 在此浏览器中压缩,不会被上传。

指南

操作示例

假设有一个 4 MB 的 GIF,尺寸 480 × 270 像素,共 60 帧,每帧 8 百分之一秒。选择后,页面显示“480×270 · 60 帧 · 4.8 秒”。保持“目标”为“压缩到指定大小”,“大小上限”保持默认的“Discord 表情(256 KB)”,即 262,144 字节,然后点击“压缩 GIF”。文件已超过目标的四倍多,所以第一轮就直接从更小的宽度开始:480 × √(2 × 262,144 ÷ 4,194,304) 约为 170 像素,256 种颜色,保留所有帧。如果这一轮得到 300,000 字节,下一轮保持 170 像素,并降到 128 种颜色;如果是 500,000 字节,则改为每隔一帧保留一帧;如果是 700,000 字节,则把宽度缩小到 98 像素。一旦文件符合要求就会停止,最多 8 轮。得到 250,000 字节的结果时,会显示“缩小了 94%:244.1 KB”,并下载为“name_compressed.gif”。

使用哪些设置,以及限制

  • 先从“压缩到指定大小”开始。 “目标”默认就是“压缩到指定大小”。从“Slack 表情(128 KB)”、“Discord 表情(256 KB)”、“Discord 贴纸(512 KB)”、“1 MB”、“5 MB”或“10 MB(Discord 上传)”中选择一个“大小上限”,工具会不断缩小 GIF,直到符合要求。这些标签只是预设,大小按 1 KB = 1,024 字节计算,所以请核对你要上传的网站当前的限制。如果 GIF 已经小于你选的大小,页面会说明这一点,而压缩仍可能让它更小。
  • 了解它改变什么,以及按什么顺序。 在“压缩到指定大小”中,工具依次尝试减少颜色(256,然后 128、64、32)、隔帧保留、缩小宽度,每一轮都从上一轮的结果开始。下一步是什么,取决于上一次结果超出目标多少:在目标的 1.6 倍以内时减少颜色;在 2.2 倍以内时隔帧保留(仅适用于 8 帧或更多的 GIF);否则缩小宽度。宽度不会低于 48 像素,最多进行 8 轮。页面对此的描述是“先减少颜色,再隔帧保留,最后缩小宽度,直到符合要求。”
  • 需要精确控制时使用“自选设置”。 这种模式只按你选的设置运行一轮。“颜色数”可选 256、128、64 和 32(初始选中 128)。“宽度”提供“原始”,会显示你的 GIF 自身的宽度,例如“原始(600px)”,外加 480、320、240 和 128 px 中比你的 GIF 更窄的那些。“帧数”提供“保留所有帧”、“每 2 帧保留 1 帧(速度不变)”和“每 3 帧保留 1 帧(速度不变)”。丢帧会让动作不那么流畅。
  • 让抖动方式与画面相匹配。 “抖动”有三个选项:默认的“图案抖动(文件最小)”、“扩散抖动(渐变最平滑)”和“无(纯色、卡通)”。照片和渐变使用扩散抖动,纯色图案使用无,而文件大小最重要时请保持图案抖动。它对两种目标都有效,而且修改任何设置都会清除之前的结果。
  • 工具绝不会给你一个更大的文件。 如果重新编码后的 GIF 并不比原文件小,工具会保留原始字节,并提示“此 GIF 已经优化得很好,因此保留了原文件。请尝试减少颜色或缩小宽度。”此时下载的文件就是你的原文件,只是换了新名称。这种情况多发生在本来就已优化过的 GIF 上。生成更小的文件时,原文件的循环设置会被保留,包括只播放一次的 GIF。
  • 了解 GIF 是如何计算的,并考虑 MP4。 工具会读取 GIF 的文件头和帧列表而不解码像素,并在文件大小旁显示画面尺寸、帧数和时长。计算时长时,0 或 1 百分之一秒的帧延迟会按 0.1 秒计算,与浏览器的播放方式一致。页面还会提示“还能小得多:大多数聊天应用和网站都能像播放 GIF 一样播放 MP4。请使用 GIF 转 MP4。”工具一次处理一个 GIF。首次使用时会下载视频引擎(约 31 MB),之后它会保存在你的浏览器中,你的 GIF 在浏览器中处理,不会上传。

常见问题及解决方法

提示“此文件不是 GIF。请选择 .gif 动图文件。”
工具检查的是文件的开头字节,而不只是名称。改名为 .gif 的 PNG、WebP 或 MP4 通常在你拖入时就会被拒绝,并显示类似“photo.gif 是此工具无法打开的 PNG 文件。”的消息。以下情况会出现“不是 GIF”的消息:文件不以 GIF87a 或 GIF89a 开头且类型无法识别;文件太短,容纳不下 GIF 文件头;或者没有帧、宽度或高度为零,例如已损坏的文件。请把动画重新导出为真正的 GIF 后再选择。
提示“无法在不把 GIF 压得过小的前提下达到大小上限。请尝试较短的 GIF 或更大的上限。”
文件还没达标,工具的步骤就用完了:已经进行了 8 轮,或宽度已降到 48 像素。你仍然可以下载它最后一次的结果。请选择更大的“大小上限”,或先用其他工具缩短动画,因为这个工具无法裁掉开头或结尾的帧。页面还会说明 MP4 能小得多。
提示“此 GIF 已经优化得很好,因此保留了原文件。请尝试减少颜色或缩小宽度。”
重新编码的 GIF 与原文件一样大或更大,所以工具保留了你的原文件,而不是交还一个更大的文件。在“自选设置”中,请选择 64 或 32 种颜色,或更窄的宽度。在“压缩到指定大小”中,请选择低于文件大小的“大小上限”,因为已经符合要求的 GIF 只会进行一轮。页面还会说明 MP4 能小得多。
提示“无法加载编码器。检查您的互联网连接并重试。”
视频引擎(约 31 MB)无法下载。选择 GIF 后页面就会立即开始下载,等待期间按钮显示“正在加载引擎…(点按可取消)”。请检查网络连接,然后再次点击“压缩 GIF”。引擎下载完成后会保存在你的浏览器中。
提示“浏览器在处理此文件时内存不足 — 对该设备来说文件太大。请尝试较短的片段、较小的文件或台式电脑。”
与音频和视频工具不同,这个工具在你选择文件时不会检查文件大小,而且处理期间整个 GIF 都保存在浏览器内存中。帧数极多或画面很大的 GIF 可能会耗尽内存。请换用台式电脑,或先在别处缩短这个 GIF。

对比分析

“压缩到指定大小”省事:它会替你选择设置,并在第一个符合要求的结果处停止。“自选设置”提供一轮可预期的处理,但可能达不到你的目标。无论哪种方式,这个工具都只会减少现有 GIF 的颜色、帧数和宽度。它不能裁剪、剪辑、加速、倒放或编辑帧,而且一次只处理一个 GIF。它的编码器是 ffmpeg 的调色板方法,没有有损 GIF 编码步骤,所以带有该步骤的桌面优化工具可能会从同一个 GIF 得到更小的文件。更大的压缩幅度来自更换格式:页面本身就指向 MP4,并称大多数聊天应用和网站都能像播放 GIF 一样播放它。作为交换,无需上传,也无需安装任何东西。

相关工具

常见问题