Skip to main content

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. 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. 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. 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

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.