Neatbo.

提取 GIF 全部显示帧

按明确背景政策将 GIF 每个合成显示帧恢复为完整画布 PNG,保留原始延时、disposal、原件和完整 JSON/CSV ZIP。

浏览器本地处理输入一份本地 GIF87a/89a 原件输出全部完整画布 PNG、原件和完整 JSON/CSV ZIP单个文件最多 10 MiB · 最多 1 个
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

或将文件拖到这里

文件留在当前设备,原始文件不会被覆盖。

单个文件最多 10 MiB · 最多 1 个

    处理选项

    先填写标记为必填的选项,其余可保留默认值。

    正在准备处理工具…

    开始之前

    选择一份已有 GIF 和画布背景,恢复每个完整合成显示帧。全部 PNG、原始延时和 disposal 声明连同原件保存在完整 ZIP。

    如何使用

    1. 选择一份 GIF 原件并保留备份。
    2. 选择透明画布或 GIF 背景色。
    3. 运行后检查全部补丁、disposal 和原始延时行。
    4. 下载 ZIP 并打开完整画布 PNG;用 JSON/CSV 核对全部记录与散列。

    支持范围与限制

    一份 GIF87a/89a,最多 10 MiB、500 帧,逻辑宽高各最多 2048,累计完整显示像素最多 16777216。小补丁也按整个逻辑画布计每帧像素。

    支持全局/局部色表、普通/四遍交错图像、完整 LZW、disposal0/1/2/3 及一份 NETSCAPE2.0 循环声明。原始评论字节完整保存在 JSON 的十六进制字段。

    透明画布从透明开始,disposal2 将补丁区域清为透明。GIF 背景使用全局色表的背景色且不透明;没有全局色表时使用透明。此选择可能改变存储补丁外的像素。

    透明补丁像素不覆盖已有画面。Disposal0/1 保留,2 清除补丁矩形,3 恢复前画布。Disposal0 的 retain 选择不同于继承上个非0 disposal 的读取器。

    每张 PNG 都是完整逻辑画布的 RGBA8,不经 Canvas 缩放或色彩变换。Alpha0 的隐藏 RGB 统一为零。原始延时按百分之一秒保留,包括零;不推断播放器最小延时、页面背景或全部查看器 RGBA。

    Plain Text、未知扩展/application、用户输入/保留标志、disposal4–7、非法色表索引、畸形 LZW、截断与尾随垃圾都整体拒绝,不交付部分 ZIP。

    一个 ZIP 包含 original.gif、全部 frames/frame-NNNN.png、gif-frames.json 和公式安全 gif-frames.csv。JSON/CSV 合计最多 4 MiB;100 MiB ZIP 防护上限受更严格的原件、像素和报告预算支配,不是可单独达到的输出承诺。

    文件只在本地处理,不上传、不抓取 URL、不执行用户内容。请保留原件:这是图像恢复,不是元数据清理、动画编辑或通用 GIF 验证。

    操作示例

    示例输入

    一份 8505 字节、61×47 的真实 Pillow 字典压缩 GIF。
    示例参数
    透明画布。

    示例输出

    8 张 PNG 显示帧、22936 累计像素、28 个原始百分之一秒、循环声明2,共11个 ZIP 成员。

    出现问题时

    畸形、不支持或超过预算的输入不产生下载。取消会丢弃未完成产物。修正输入或选择支持的原件后重新运行;可以再次使用同一选中文件。

    常见问题

    为什么导出像素可能与 GIF 查看器不同?

    画布由所选背景政策和明确的 disposal0 retain 选择决定。有些读取器继承先前的非0 disposal,播放器可能钳制延时或采用外部页面背景;本站不声称这些行为。

    循环值和原始时间能复现播放吗?

    不能。缺少 NETSCAPE2.0 时完整报告记录 null;其中零表示无限循环声明。原始百分之一秒与累计值描述源元数据,不是浏览器墙钟时间或保证的播放器重复次数。

    文档与延伸阅读

    相关工具