GIF 分解与信息
上传 GIF 直接读出帧数、画布尺寸、全局颜色表、循环次数与每帧延时(自写字节流解析,不解码像素),浏览器支持 ImageDecoder 时还能逐帧导出 PNG,并列出每帧的处置方式与透明色。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
只读取文件头与每帧信息,文件不会上传。
还没有选择 GIF
信息文本
这个工具能做什么
- 收到一张动图想知道它到底有几帧、每帧多久、循环几次:选文件后直接读字节流给出全部元信息。
- 做性能预算前先看体积构成:帧数、画布尺寸、全局颜色表色数和总时长都会列出来。
- 把 GIF 拆成 PNG 序列做二次加工:浏览器支持 ImageDecoder 时可以一键导出全部帧。
- 核对「为什么这个 GIF 播放很快/很慢」:每帧的延时、处置方式与是否有透明色都会逐帧列出。
示例
输入
一张 8×8、3 帧、每帧 120 ms、无限循环、4 色全局颜色表的 GIF
输出
画布尺寸: 8 × 8 帧数: 3 循环: 无限循环 总时长: 360 ms 全局颜色表: 4 色 帧 #1: 120 ms (8.3 fps) · 8 × 8 · 处置方式 1 · 透明色: 无 帧 #2: 120 ms (8.3 fps) · 8 × 8 · 处置方式 1 · 透明色: 无 帧 #3: 120 ms (8.3 fps) · 8 × 8 · 处置方式 1 · 透明色: 无
元信息来自对 GIF 字节流的解析(不解码像素);逐帧导出 PNG 依赖浏览器的 ImageDecoder,Safari 等浏览器不支持时只能看上面的信息。
常见问题
为什么我的 GIF 显示「播放一次」而不是「无限循环」?
因为文件里没有 NETSCAPE2.0 循环扩展,或者扩展里的循环次数为 1。GIF 规范中只有存在该扩展块且次数为 0 才是无限循环,工具读到什么就显示什么,不会替你猜测播放器行为。
每帧的延时和播放器实际速度为什么对不上?
GIF 的延时单位是 1/100 秒,所以实际值是 10 ms 的整数倍,0.05 秒这种精度存不下。另外很多浏览器会把小于 20 ms 的延时提升到 100 ms,所以你看到的播放速度可能比文件里写的慢。
「处置方式」和「透明色」是什么意思?
处置方式是每帧绘制完成后如何处理画布(1 表示保留、2 表示恢复背景等),透明色表示该帧是否带透明索引。它们是排查「动画有残影」或「背景发黑」的关键信息。
导出 PNG 为什么有时不可用?
逐帧导出依赖浏览器的 ImageDecoder API(目前主要是 Chromium 系浏览器)。不支持时页面会提示「缺少 ImageDecoder」,此时仍然可以查看全部元信息,或者换用 Chrome / Edge 打开。
解析 GIF 会把文件上传吗?
不会。文件在你的浏览器里被读成字节流解析,页面不发送任何网络请求,导出的 PNG 也是本地生成的。
关键词:gif 分解gif splittergif 帧数gif 延时gif delaygif 导出 pnggif 信息动画帧gif 循环次数