File signature
- Input
- bytes 47 49 46 38 39 61
- Expected output
- GIF89a, versão que suporta transparência e animação
The GIF87a variant (bytes ending in 37 61) exists but defines neither animation nor transparency.
animated GIF frames
An animated GIF does not store each frame as a complete, independent image: most frames only store the difference from the previous one, along with a display duration and a "disposal" instruction that says what to do with the frame area after showing it. Properly extracting frames means reconstructing that frame-by-frame composition, not just splitting raw data blocks out of the file.
The GIF87a variant (bytes ending in 37 61) exists but defines neither animation nor transparency.
The "≤10 becomes 100" rule matches what every browser already does when playing the GIF, so the extracted frame timing matches the real display time.
It is the only one of the 4 modes that requires saving a copy of the screen BEFORE drawing the current frame.
Your choice: PNG (lossless, preserves the transparency common in GIFs), JPG (smaller files, no transparency) or WebP. Each frame becomes a file numbered by its order in the animation and prefixed with the source file's name, all gathered into a single .zip.
Because most frames of a GIF store only the area that changed since the previous frame, not the whole image. Extracting the raw data block without following each frame disposal method (which says whether the screen should be cleared, kept, or restored between frames) produces an incomplete composite.
If the original file has a delay of 0 or 1 hundredth of a second per frame, every browser (and this extractor) rounds that value up to 100 ms, because a "zero delay" is almost always an export mistake from the software that created the GIF, not a genuine intent to run at 1000 frames per second.
The default cap is 300 frames per extraction, a ceiling meant to avoid blowing up browser memory, since each frame is decoded as a full RGBA image. GIFs with more frames than that can be extracted in ranges, using the start/end interval.
GIF is decoded by dedicated code written for this site, which works in any browser. APNG, animated WebP, and animated AVIF rely on the browser native `ImageDecoder` API, which not every browser implements, so those formats may show an "unsupported format" error where GIF would work normally.
Extraction happens entirely in your browser. No file is sent to any server.