Resize GIF — Free, Fast & Private
Most online image resizers will happily accept a GIF and hand you back a still. The reason is technical and invisible until it bites: the standard way a browser reads an image decodes only the first frame, so a generic resizer flattens your animation to a single picture and reports success. This tool takes the slower, correct route. It parses the GIF's actual block structure, walks the animation frame by frame, resizes each frame, and writes a new GIF — so what you download still moves. Frame delays are copied over exactly, the loop count (play once, loop N times, loop forever) survives, and if the source uses palette transparency, the output keeps a real transparent palette index rather than inventing black fringes. All of it happens on your device; the file never uploads.
Why resizing is the best GIF diet there is
A GIF's file size is roughly proportional to its pixel count multiplied by its frame count, and pixel count falls with the square of the width. Take a 800px-wide screen recording down to 480px and each frame carries about a third of the pixels — across two hundred frames, that compounds into a dramatically smaller file with no frames dropped and no timing changed. This matters because GIF has no quality slider: it is a lossless format over a limited palette, so unlike JPEG there is no "compress at 70%" lever to pull. Dimensions are the honest lever. If a GIF is too big for a Discord upload, a README, or an email, resizing it down is almost always the fix that costs the least visually — the motion is what people watch, not the pixel dimensions.
What "every frame kept" actually involves
GIF frames are not independent pictures. Many encoders store only the pixels that changed since the previous frame, plus a "disposal" instruction saying what to do with the old ones — keep them, clear them, or restore an earlier state. Resize those patch frames naively and the animation shreds into flickering rectangles. This tool composites each frame onto a running canvas exactly as a GIF player would, honouring all the disposal modes, and resizes the composited result — so partial-update GIFs, the majority of real-world screen recordings, come out looking right. It then re-quantizes each resized frame to a fresh palette and streams it into the output file one frame at a time, which is why a 100 MB input stays within a browser tab's memory budget instead of exploding into gigabytes of decoded frames.
Downscale only — upscaling a GIF is a trap
The width presets stop at your GIF's own width; anything at or above it is disabled, because this tool never upscales. That is a deliberate refusal, not a missing feature. A GIF is limited to 256 colours per frame to begin with; stretch those pixels larger and interpolation smears the hard palette edges into mush, then re-quantization bands the smears. The result is a bigger file that looks worse — the worst trade in image editing. If you genuinely need a small animation displayed larger, do it in CSS or the video editor where the GIF will be used, where scaling happens at display time and costs no bytes. And if what you actually want to enlarge is a still image, the AI upscaler is built for that.
Long GIFs take a while, and the progress bar is real
Every frame is decoded, composited, resized, re-quantized and re-encoded. That is honest work and it takes honest time: a 50-frame reaction GIF finishes in a blink, but a 500-frame screen recording can take from several seconds to a minute depending on your device, and the tool warns you up front when it sees a frame count in that range. The progress bar counts actual frames processed, not a decorative animation. Because the work runs in a background thread on your own machine, the tab stays responsive — and unlike an upload-based service, there is no queue, no per-file quota, and a retry at a different width costs only the re-encode time.
The preview is the first frame, on purpose
After you drop a file in, the preview shows the first frame as a still image, with the frame count and duration printed beside it. That is deliberate: a moving preview under a resize decision reads as if it were the output, when it is only the input. The readout also tells you when a file is a single-frame GIF — plenty of images wear the .gif extension without animating, and for those the still-image image resizer gives you more control over output format. If the animation itself has dead weight — intro frames, trailing padding — resizing will not remove it; this tool changes dimensions, never frame count or timing. What comes out plays exactly like what went in, smaller.
