Check if Image is GIF Online
Check if Image is GIF, read magic bytes, detect animation, frames, and loop count - all in your browser.
Drop a file in and get a byte-level verdict: GIF or not, 87a/89a version, dimensions, animation, frame count, and loop count.
Click to upload or drag and drop
Any file — the tool reads the first 4 KB locally, regardless of extension
Details
First 14 bytes (hex)
A GIF always starts with ASCII GIF87a or GIF89a (47 49 46 38 37 61 or 47 49 46 38 39 61).
How to Use Check if Image is GIF Online
- Drop any file on the upload area - the extension is ignored; the tool reads the actual bytes. Only the first 4 KB is slurped in, so even huge files open instantly.
- Read the verdict: green says GIF (with version 87a or 89a and a single-frame / animated hint); amber says not a GIF with the mismatched prefix.
- Inspect the details card: dimensions, colour resolution, Global Colour Table size, animation flag, detected image descriptors, loop count, and transparency flag.
- Check the hex line: the first 14 bytes in uppercase hex so you can eyeball
47 49 46 38 39 61("GIF89a") yourself. - Press
Ctrl+Enter(⌘+Enteron Mac) to re-run the check on the last file - useful after a write or re-save. - Copy the plain-text report or Download a timestamped `.txt` that keeps the original filename for archives.
Frequently asked questions
Is my file uploaded anywhere?
No. The check runs entirely in your browser using File.slice().arrayBuffer(). Only the first 4 KB are read, and even that stays in memory locally.
How does the tool detect the GIF format?
The first six bytes must be ASCII GIF87a or GIF89a. Anything else fails the check and the non-matching prefix is shown so you can see what the file actually starts with.
Does it detect renamed files?
Yes. The extension is not consulted. A GIF saved as cat.jpg is still reported as GIF.
How does it tell if a GIF is animated?
A proper GIF parser scan. A file is considered animated if it contains at least two Image Descriptors (blocks starting with 0x2C) or a NETSCAPE 2.0 Application Extension – the block responsible for the loop count. Both signals are reliable for real animated GIFs.
What’s the loop count?
The number of times the animation plays, stored in the NETSCAPE 2.0 extension. A value of 0 means “loop forever” – the card shows ∞ in that case.
What’s the transparency flag?
GIFs set a “transparent pixel” flag in the Graphic Control Extension. If any GCE in the first 4 KB has the flag set, the details card shows “Transparency flag: yes”.
Why does “frame count” say “(in first 4 KB)”?
The tool only reads the first 4 KB for speed. Most GIFs fit their header, Global Colour Table, and first frame inside that. For very large animations the image descriptor count reflects only what was visible in the slice.
What is the difference between GIF87a and GIF89a?
GIF87a is the original 1987 spec – no animation, no transparency. GIF89a adds the Graphic Control Extension, which enables transparency, delays, and animation via NETSCAPE 2.0. Almost every modern GIF is 89a.
Is there a file size limit?
No – only the first 4 KB is ever read, so file size does not matter for the check.
Does it work offline?
After the page loads, yes. HTML, CSS, and JS are self-contained – disconnect Wi-Fi and keep sniffing.