GIF Frame Player
Upload a GIF to play it frame by frame, reverse the preview, inspect delays, and download the current composited frame as PNG.
GIF file and playback settings
Local processing- File name
- —
- File size
- —
Current frame and timeline
Waiting for a fileChoose a file to see the composited frame and frame timeline.
- Logical dimensions
- —
- Single-loop duration
- —
- Loop information
- —
- Disposal method
- —
Choose a GIF file to begin.
How GIF frames are reconstructed
- Read the structureIdentify the GIF version, logical canvas, palettes, and extension blocks.
- Decode pixelsDecompress the color indexes in each image block using LZW rules.
- Compose a complete frameBuild the visible canvas using transparency, frame position, and disposal method.
- Drive playbackUse original or uniform delays to drive the timeline and allow frame jumps.
Learn more
How to use and keyboard shortcuts
- Choose or drop a GIF and wait for local parsing to finish.
- Use direction, timing, the timeline, or the frame number to locate a frame.
- Download the current composited frame as PNG or copy its information.
When focus is outside a form control, Space plays or pauses, the arrow keys move between frames, and Home/End jump to the first or last frame.
Frame delays and disposal
GIF stores delays in hundredths of a second. A declared delay of 0 is shown as 0 ms, but playback uses 100 ms; values from 1 to 19 ms use 20 ms.
Disposal tells the decoder whether to keep the current frame area, restore the background, or restore the previous canvas. The PNG uses the complete composited logical canvas.
Format limits and edge cases
- Only GIF87a and GIF89a files are accepted; APNG, animated WebP, and video are not parsed.
- The limits are 30 MB, 4096 × 4096 logical pixels, and 1000 frames.
- Processing stops when logical canvas pixels multiplied by frame count exceed 25 million, to reduce memory risk.
- Browser, operating-system, and display-refresh behavior can make very short delays look slightly different.
Frequently asked questions
Why can the displayed delay differ from the playback delay?
GIF files can declare zero or very short delays, while browsers commonly clamp short intervals. The player keeps the original value and also shows the delay used for playback.
How do I save one frame from a GIF as an image?
Use the timeline or frame number field to select a frame, then choose Download current frame PNG. The download is the fully composited logical canvas.
Is the uploaded GIF sent to a server?
No. The browser File API reads the file, and parsing, compositing, preview, and PNG export all happen on this device.
Privacy, method, and sources
This tool does not upload files, call third-party runtime APIs, write to the URL, or use local storage. The clipboard and local file are used only after you click copy or download.
Parsing follows the GIF89a format description; preview and PNG export use the browser Canvas API. The GIF parser and LZW decoder are independent implementations.