GIF Resizer
Resize a GIF — animated or still — to an exact size or half its pixels. Every frame is scaled, every frame keeps its own delay, and the file never leaves your browser.
- No upload
- Batch files at once
- Free, no sign-up
100% Local in Browser — No Server Upload, Instant & Private
Drop your files here, or click to choose
PNG, JPG, WebP or GIF up to 25MB. An animated GIF stays animated: the frames are resized one by one and written back with the delays they came with.
Presets
How it works
- 1
Drop the GIF
The browser decodes every frame itself — including the frames that only encode the rectangle that changed. Nothing is uploaded, so there is no queue and no file left on a server afterwards.
- 2
Pick a size
128×128 for Discord or Slack emoji, half size for a lighter file, or type the exact width and height. Contain keeps the aspect ratio and pads with transparency instead of stretching.
- 3
Download the animation
The result is a real animated GIF, not a single frame: the frame count and the total running time are shown next to the download so you can check before you post it.
More tools
- Merge ImagesPut two or more pictures into one image: stacked, side by side, or in a grid. Sizes are matched automatically so nothing is letterboxed, and the files never leave your browser.
- WebP to GIFConvert WebP to GIF, including animated WebP: every frame and every delay is carried over, so the result plays exactly like the original. Runs in your browser, no upload.
- Compress GIFMake a GIF smaller by dropping frames, cutting the palette and scaling down — the three levers that actually work. Set a size limit and the page keeps trying until it fits, in your browser.
What it won't do
- Scaling a GIF is re-encoding it. A noisy photo sequence can come out larger after resizing, because the encoder has to rebuild the palette — check the size shown next to the download.
- A very large animation (hundreds of frames at full resolution) is limited by your device's memory: the frames are held in the tab while they are processed.
- Transparency survives as GIF transparency, which is one-bit: a soft shadow becomes either solid or gone. That is the format, not the resize.
- Colours are rebuilt against one palette per file, so a frame with a sudden colour flash can shift slightly.
Questions
How do I resize a GIF to 128×128 for Discord emoji?
Pick the Discord Emoji 128×128 preset and press Resize. Discord renders emoji at 128px and rejects animated ones over 256KB, so the preset keeps the frame count and delay and pads with transparency rather than stretching — a 16:9 clip becomes a square with empty top and bottom, which is what an emoji needs.
Does resizing a GIF keep the animation?
Yes. Each frame is decoded, scaled and re-encoded, and each frame's own delay is carried over, so the clip plays at the speed it did before. Tools that flatten a GIF to its first frame are the usual reason a resized emoji stops moving.
Why did my GIF get bigger after resizing?
GIF stores indexed colour and LZW-compressed frames; making the image smaller means the encoder rebuilds the palette, and a noisy source can end up less compressible. If size is the goal rather than dimensions, use the compress page and drop every second frame or cut the palette to 64 colours.
Can I resize several GIFs at once?
Yes — bulk mode is on by default. Drop a folder's worth of files and each one is processed in turn with the same size, then downloaded individually or as one ZIP.
Is my GIF uploaded to a server?
No. There is no upload endpoint: decoding, scaling and encoding all happen in JavaScript on your machine. That is also why a resize that would take a queued tool a few seconds happens instantly here.