GIF splitter & info
Read a GIF right in the browser: frame count, canvas size, global color table, loop count and per-frame delays (parsed from the byte stream, no pixel decoding). Where ImageDecoder is available you can also export every frame as PNG.
Runs in your browserEvery computation happens in your browser — your data never leaves this device.
Only the header and frame info are read locally.
No GIF selected yet
What this tool does
- Find out how many frames an animated GIF really has, how long each one lasts and how often it loops — pick the file and the byte stream is parsed for you.
- Inspect what drives the file size before optimising: frame count, canvas dimensions, global colour table size and total duration are all listed.
- Split a GIF into a PNG sequence for further editing: export every frame in one click where ImageDecoder is available.
- Check why a GIF plays oddly fast or slow — per-frame delay, disposal method and transparency are listed frame by frame.
Example
Input
An 8×8 GIF with 3 frames, 120 ms each, looping forever, 4-colour global table
Output
Canvas size: 8 × 8 Frames: 3 Loop: Loops forever Total duration: 360 ms Global color table: 4 colors Frame #1: 120 ms (8.3 fps) · 8 × 8 · Disposal 1 · Transparency: No Frame #2: 120 ms (8.3 fps) · 8 × 8 · Disposal 1 · Transparency: No Frame #3: 120 ms (8.3 fps) · 8 × 8 · Disposal 1 · Transparency: No
The metadata comes from parsing the GIF byte stream without decoding pixels; per-frame PNG export needs the browser ImageDecoder API, so browsers like Safari can only show the metadata.
Frequently asked questions
Why does my GIF report "Plays once" instead of looping forever?
Because the file has no NETSCAPE2.0 looping extension, or the count inside it is 1. Per the GIF spec only a present extension block with a count of 0 means endless looping, and the tool reports exactly what the bytes say instead of guessing player behaviour.
Why does the per-frame delay not match the playback speed I see?
GIF stores delays in hundredths of a second, so the effective value is always a multiple of 10 ms and finer precision cannot be represented. On top of that many browsers bump delays under 20 ms up to 100 ms, which is why playback can look slower than the file claims.
What do "disposal method" and "transparency" mean?
The disposal method tells the player what to do with the canvas after drawing a frame (1 keeps it, 2 restores the background, and so on), while transparency tells you whether that frame carries a transparent index. Together they explain most ghosting or black-background artefacts.
Why is PNG export sometimes unavailable?
Frame-by-frame export relies on the browser ImageDecoder API, which today mainly means Chromium-based browsers. Where it is missing the page says so, and you can still read all the metadata — or open the file in Chrome or Edge.
Does parsing a GIF upload it?
No. The file is read and parsed as a byte stream inside your browser, the page makes no network requests, and the exported PNGs are generated locally too.
Keywords:gif 分解gif splittergif 帧数gif 延时gif delaygif 导出 pnggif 信息动画帧gif 循环次数