← 退出

制作 GIF

多张图片合成动图,支持调整已有GIF速度

上传图片(按上传顺序作为动画帧)
常用模板(点击自动填入对应的宽度和帧间隔)

关于制作 GIF

制作 GIF 工具有两个功能,用页面顶部的两个按钮切换。「图片合成 GIF」把你选的多张图片按顺序合成一个循环播放的动图,可以设置每帧间隔和输出宽度,还有几个常用尺寸模板。「调整已有 GIF 速度」把一个现成的 GIF 放慢或加快,倍率从 0.25 倍到 4 倍。它不能从视频里截取画面,也不做裁剪、加文字、压缩到指定体积这类编辑。需要特别说明的一点是:合成功能完全在本地完成,而调速功能第一次使用时需要从外部网络(unpkg.com)下载约 25 到 30MB 的视频处理核心,详见下文。

操作步骤:图片合成 GIF

  1. 确认顶部选中的是「图片合成 GIF」。点击「点击选择多张图片(可多选;动画 GIF 会自动拆成多帧)」,选择至少 2 张图片。图片会按选择顺序成为动画帧,可以多次添加,新选的会追加在后面。如果选的是动画 GIF,它会被展开成一帧一帧的缩略图(按 GIF 的叠加和清除规则合成完整画面,并保留透明),每一帧自带 GIF 里原有的延迟,显示在对应帧的数字框里,你仍可以修改、清空(清空后改用全局间隔)或调整顺序。所有帧合计最多 200 帧,超出的会被忽略,并在页面上显示「帧数已达上限 200 帧,超出的帧已被忽略。」;展开期间会显示「正在读取图片并展开 GIF 动画帧…」。只有一帧的 GIF 按普通图片处理。
  2. 每张缩略图左下角的数字是帧序号,右上角的叉号可以删除这一帧。缩略图下方有两个小箭头按钮,可以把这一帧前移或后移一位调整顺序;箭头下方的数字框是这一帧自己的间隔(毫秒),留空就使用全局的「每帧间隔」,数字框里灰色的占位数字就是当前全局值。
  3. 可以先点一个常用模板,会同时填好输出宽度和帧间隔:微信表情包(宽 240、间隔 150 毫秒)、QQ表情(200、150)、Discord自定义表情(128、150)、社交媒体动图(480、200)、快速搞笑循环(320、100)、慢动作演示(480、500)。模板只是预设这两个数值,并不会检查文件体积是否符合平台要求。
  4. 在「背景」下拉框里选「白色 White」(默认,透明部分填白)或「透明 Transparent」(保留透明)。GIF 的透明只有全透明和不透明两种,透明度低于 50% 的像素会变透明,其余变不透明,半透明的边缘会出现锯齿;只有画面里确实存在透明像素时才会启用透明。也可以手动拖动「每帧间隔」滑块(50 到 2000 毫秒,步长 50)和「输出宽度」滑块(120 到 720 像素,步长 20)。没有单独设置间隔的帧都使用这个全局值。
  5. 点击「生成 GIF」,按钮会显示「生成中… 百分比」。完成后出现预览,点击「下载 GIF」保存,文件名是 animation.gif。少于 2 张图片时会提示「至少需要 2 张图片才能生成 GIF」。

操作步骤:调整已有 GIF 速度

  1. 点顶部的「调整已有 GIF 速度」。页面顶部的提示会告诉你首次使用需要下载约 25 到 30MB 的处理核心。
  2. 点击「点击上传 GIF」选择一个 GIF 文件,拖动「播放速度」滑块(0.25x 到 4x,步长 0.25;小于 1 倍变慢,大于 1 倍加快)。
  3. 点击「调整速度」,按钮显示「正在处理…」。完成后会显示结果预览,点击「下载结果」保存,文件名形如 speed_2x.gif。处理失败时会提示「处理失败,请确认上传的是有效的GIF文件,或者重试一次。」

使用场景举例

做一个四步的操作教程动图:按步骤顺序选好 4 张截图,点「慢动作演示」模板(宽 480、间隔 500 毫秒),每一步停留半秒,生成后检查预览。如果觉得节奏太慢,把「每帧间隔」滑块往左拉(单独设置过间隔的帧不受影响),再重新点「生成 GIF」。做微信表情则选「微信表情包」模板,生成后看一下预览是否清晰。这里不声称任何具体的文件体积或压缩效果,实际大小取决于你的图片内容和帧数,请以下载后文件的实际大小为准。

支持范围与已知限制

  • 合成 GIF 时,画面尺寸由第一张图片的宽高比决定:输出宽度按你设置的值,高度按第一张图的比例算出。其他尺寸不同的图片会被放大后居中裁切填满,所以边缘可能被裁掉一部分。
  • 透明背景默认用白色填充;把「背景」改为「透明 Transparent」可以保留透明,但 GIF 只支持全透明/不透明两种像素,半透明的边缘会变得有锯齿,并且在极少数情况下与透明键色接近的颜色可能被误判。动画 GIF 输入会被展开成多帧,总帧数上限 200,超出会被忽略;极大尺寸的动图展开时会占用较多内存。
  • 可以用缩略图下的箭头调整帧顺序,也可以给单帧设置不同的间隔(留空则用全局间隔);不支持拖动排序。动图默认无限循环播放,没有循环次数选项。
  • 颜色经过 GIF 的调色板量化(质量参数固定),渐变、照片类图片的色彩可能出现色带或颗粒感,这是 GIF 格式本身的限制。
  • 调整速度功能依赖 FFmpeg 的 WebAssembly 处理核心。首次使用需要从 unpkg.com 下载约 25 到 30MB 的文件,没有网络或网络受限时会失败。你的 GIF 本身不会被上传,但这个下载是实际发生的网络请求。
  • 调速后的 GIF 是由 FFmpeg 重新编码生成的,体积、颜色可能与原文件不同。倍率较大时,浏览器可能对过短的帧间隔做最小延迟限制,实际播放速度不一定严格等于所选倍率。
  • 图片很多、尺寸很大时,生成会占用较多内存和时间。生成失败时只会提示「生成失败,请重试」,不会指出是哪一张图出了问题,如果某张图片格式浏览器不支持(例如部分 HEIC 照片),就会整体失败,可以先把它转成 JPG 或 PNG。
  • 不提供视频转 GIF、文字叠加、指定体积压缩、裁剪等功能。

常见问题:合成时我的图片会上传吗?

不会。合成使用打包在本站的 gif.js 在你的浏览器里完成,图片不会发送到任何服务器。调整速度时,你的 GIF 同样在本地处理,不会上传,但首次使用要先从外部下载处理核心。

常见问题:为什么生成的 GIF 画面被裁掉了一部分?

因为输出画面的比例取自第一张图片,而其他尺寸不一致的图片采用「铺满并居中裁切」的方式。要避免裁切,尽量让所有图片使用相同的宽高比,或者把宽高比最合适的那张放在第一位。

常见问题:模板里的数值是不是平台官方规定?

不是。模板只是常见使用场景下的参考数值(宽度加帧间隔),各平台实际的尺寸和体积限制可能随时调整,工具也不会检查你的文件是否满足。上传到平台前请以平台当前的要求为准。

常见问题:调速时一直卡住怎么办?

首次使用要下载较大的文件,网络慢时需要等待较久。如果长时间没有反应或提示处理失败,检查网络是否能访问 unpkg.com,刷新页面后重试;如果 GIF 文件很大,可以先缩小再处理。

隐私与处理方式

图片合成完全在浏览器里完成,不产生与你的图片相关的网络请求。调整速度功能在首次使用时会从 unpkg.com 下载 FFmpeg 的处理核心文件(这是一次对外部服务器的请求,但不包含你的文件),随后你的 GIF 在本地处理。所有生成的结果都只存在于你的浏览器内存中,关闭或刷新页面后即消失,请及时下载。