GIF Resizer

Resize an animated GIF to exact pixels, a percentage, or a platform preset — every frame scaled together, animation intact.

Runs entirely in your browser · free · no watermark, no signup.

Tap to select GIFs

.gif only · up to 20 files · 200 MB each · paste with Ctrl/Cmd + V

Drop a folder or a mixed selection — we pick out the GIFs and list anything skipped.

The download happens in your browser, straight from the image host — ZipGIF has no server to send it through. Links must point directly at a .gif file.

  1. 1.Drop a GIF (or several).
  2. 2.Pick a size: pixels, percentage or a preset.
  3. 3.Resize and download.

What this GIF resizer does

This gif resizer changes the dimensions of an animated GIF: exact pixel sizes, a percentage, or a platform preset such as Discord emoji. It runs inside your browser, so the files never leave your device — nothing is uploaded, nothing is stored, and the output carries no watermark. It's free, with no signup and no limit on how many GIFs you resize.

How to resize a GIF

To resize a GIF, drop the file onto the tool at the top of this page, choose a size from the Dimensions, Percentage, or Presets tab, then press Resize GIF and download the result. The whole run happens locally in your browser. Three steps, no account, and the animation survives intact.

  1. 1.Add your GIF

    Drop one or more GIFs onto the tool, paste from the clipboard, or paste a direct image URL. The files stay on your device.

  2. 2.Pick a size

    Type exact pixels with the aspect lock on, drag the percentage slider, or hit a preset such as Discord Emoji or Twitch Emote.

  3. 3.Resize and download

    Press Resize GIF, check the before and after preview, then download the file — or grab a .zip if you resized a batch.

Batch mode works the same way. Queue up to twenty GIFs, set one size, and they're processed one after another with a single .zip at the end — each file keeps its original name plus its new dimensions.

A word on what happens between step two and step three, because it explains why the output looks right when other tools smear. Most GIFs in the wild are frame-optimized: each frame stores only the rectangle that changed since the last one. Scale those rectangles naively and you get ghost trails. This tool rebuilds every frame in full first, scales the complete picture, then re-optimizes the file at the end.

Nothing is queued on a server while that runs, because there is no server in the loop. The engine is gifsicle compiled to WebAssembly, loaded once and cached by your browser, and it works on the bytes your machine already holds. Open your network tab during a resize and you'll watch a whole lot of nothing happen.

Big files take longer, and honesty beats a spinner: a 40 MB screen recording with six hundred frames can take a minute on a laptop. The tab stays usable while it runs, and each file in the queue shows its own progress rather than one bar for everything.

Change the size of a GIF — your three options

There are three ways to change the size of a GIF here, and they suit different problems. Dimensions is for a hard number you were given. Percentage is for "about half this". Presets are for a platform that will reject the file otherwise. All three feed the same resize engine, so quality is identical.

Dimensions

Type a width and the height follows automatically while the aspect lock is on. Unlock it and you can set both numbers freely, which will squash or stretch the picture. Use the lock unless you have a specific reason not to.

Percentage

Hit 75, 50, or 25, or drag the slider to any value in between. Percentage mode is the fastest way to scale a screen recording down to something that fits a chat window, and the aspect ratio is safe by definition.

Presets

One click each: Discord Emoji, Discord Sticker, Discord Avatar, Slack Emoji, Telegram Sticker, Twitch Emote, Email-safe, and HD web. Each chip states the dimensions it applies, and the documented size limit where an official one exists.

Fit inside or stretch

Square presets meet a rectangular GIF, and something has to give. "Fit inside" scales the GIF until its longest edge hits the target, so a 16:9 clip becomes 128×72 rather than a true square — proportions kept, empty space left over. Choosing to stretch the GIF forces it to the exact square and everyone in frame gets slightly wider. If you want a genuine square with no distortion, crop first with the GIF cropper, then come back and resize.

GIF sizes for every platform (cheat sheet)

Here are the dimensions each platform expects for an animated GIF, with a size limit listed only where the platform documents one publicly. Everything else is dimensions only, on purpose. Guessing at a limit and being wrong wastes more of your time than leaving the cell blank.

Recommended GIF dimensions and documented size limits by platform
PlatformRecommended dimensionsDocumented limit
Discord emoji128×128 (fit inside)256 KB (Discord developer docs)
Discord sticker320×320512 KB (Discord developer docs)
Discord avatar128×128Dimensions only
Twitch emote112×112 (scales to 56 and 28)Dimensions only
Slack emoji128×128Dimensions only
Telegram sticker512×512Dimensions only
Email600px max widthDimensions only
HD web1280px max widthDimensions only

The Discord rows come straight from Discord's developer documentation, so the emoji and sticker presets in this discord sticker resizer apply those exact numbers. Twitch publishes its three emote sizes in the official emote guidelines, which is what the twitch gif emote resizer preset follows.

Non-square sources are the usual snag. A 16:9 clip fitted inside a 128×128 emoji box comes out 128×72, which Discord accepts and renders with space above and below. Crop to a square first if you want the artwork to fill the whole tile.

Slack and Telegram publish dimensions clearly but no public byte limit we can point at, so those rows stay dimensions-only. Email is a convention rather than a rule: 600px is the width most clients render without horizontal scrolling, and it has been that way for longer than most email clients have existed.

Sources: Discord developer docs · Twitch emote guidelines

Resize vs compress vs crop

Three different jobs, three different tools, and picking the wrong one is the usual reason a GIF still doesn't work after twenty minutes of fiddling. Read the four answers below and you'll know which page you want before you touch anything.

Resizing changes the dimensions

Resizing changes how many pixels wide and tall the GIF is. A 640×360 clip becomes 320×180, the whole picture is still there, and every frame scales together. That's what this page does. Fewer pixels usually means fewer bytes too, but the dimensions are the thing you are choosing.

Compressing shrinks the file

Compressing keeps the dimensions exactly as they are and reduces the file size instead, by trimming the color palette, dropping duplicate frames, and applying lossy encoding. Reach for it when a platform rejects your file for weight rather than width. The GIF compressor handles that side, including KB and MB targets.

Cropping cuts part of the frame away

Cropping throws away the parts of the frame you don't want — browser chrome around a screen recording, dead space at the edges, or everything outside a square. What remains keeps its original scale. Use the GIF cropper when the framing is wrong rather than the size.

What does downsizing a GIF mean?

Downsize gif means two different things depending on who's asking. Sometimes it means fewer pixels — make the picture physically smaller, which is a resize and belongs here. Sometimes it means fewer bytes at the same dimensions, which is compression. If a rule quotes a pixel number, resize. If it quotes KB or MB, compress.

Can you make a GIF bigger without losing quality?

No, and any tool promising otherwise is selling you something. To upscale a GIF, software has to invent pixels that were never recorded, guessing each new one from its neighbours. You get a bigger GIF with the same amount of real detail, spread thinner. The picture gets softer, not better.

GIF makes this worse than other formats. Every frame is limited to a 256-color palette, so the smooth gradients an upscaler produces get banded into hard steps. Enlarge a GIF by 300% and you can usually count the color bands on a face.

That's why this tool shows an amber warning the moment your numbers cross the source dimensions. It will still do it — sometimes a preset genuinely needs a tiny GIF nudged up, and you know your footage better than we do. The warning is there so nobody is surprised by the result.

Treat "enhance gif" as marketing language rather than a feature. No gif upscaler adds information that was lost when the GIF was made. If sharpness matters, go back to the source: re-export the GIF from the original video at the larger size, and you get real detail instead of an educated guess.

There is one case where enlarging a GIF is fine: pixel art and other hard-edged graphics. Those have no gradients to band and no detail to fake, so scaling them up mostly just makes the existing squares bigger. For anything filmed, treat upscaling as a last resort rather than a fix.

Why does Discord say it cannot resize my GIF?

Discord doesn't re-encode animated images on your behalf. Its built-in resizer works on still images and quietly gives up on animated GIFs, so instead of a smaller emoji you get an error. The upload is checked against the rules and rejected, rather than fixed.

The fix is to resize the GIF before you open the upload dialog: 128×128 for an emoji, 320×320 for a sticker. Use the matching preset above and the numbers are set for you.

If the resized file is still over Discord's documented 256 KB emoji or 512 KB sticker limit, dimensions are no longer the problem. That's a job for the GIF compressor, which takes a target such as 256 KB or 4 MB and works down to it.

Twitch emote resizer — 28, 56, and 112px

Twitch uses three emote sizes: 112×112, 56×56, and 28×28, per its official emote guidelines. You upload the largest one and Twitch generates the two smaller versions itself. So the only file you need to prepare is a square 112×112 animated GIF, and this emote resizer preset targets exactly that.

Design for the small end anyway. An emote that reads beautifully at 112px can turn into three grey pixels at 28px in a fast chat. Big shapes, strong contrast, and no thin outlines.

For a non-square source, the twitch animated emote resizer preset fits the GIF inside the 112×112 box rather than stretching it, so nothing looks squashed. If that leaves too much empty space, crop to a square first and then resize.

Keep the loop short as well. Chat emotes are read in half a second, so a four-second animation is mostly wasted on the viewer and heavy on the file. Two seconds of motion at 112×112 is plenty, and it uploads without an argument.

Which one should you use?

If someone handed you a number, use Dimensions. If you're eyeballing it, use Percentage and start at 50. If the destination is a chat app, use the preset and stop thinking about it. Most of the GIFs we resize go through Percentage, because "half" is usually the right answer for a screen recording that was captured at full width.

One habit worth keeping: resize gifs in round steps. Scaling to 50% or 25% maps neatly onto the source pixels and tends to look cleaner than an arbitrary 63%. It isn't a rule, and nothing breaks if you ignore it, but side by side you can usually tell.

What this GIF resizer actually saves — our measured results

We resized real GIFs with this exact tool and recorded what came out. The table below lists each source file, its original dimensions and size, and the result after a 50% resize with default settings. No estimates and no numbers borrowed from anywhere else.

Measured with this tool on 14 August 2026. Your results depend on frame count and colors.
GIFOriginal (dimensions / size)Resized 50% (size)Change
loop-animation.gif400×300 / 298 KB217 KB-27%
screen-recording.gif800×600 / 413 KB245 KB-41%
sticker.gif512×512 / 226 KB136 KB-40%
web-banner.gif728×90 / 42 KB41 KB-3%
photo-style.gif480×360 / 1,489 KB1298 KB-13%

The mechanism is simple arithmetic: halving both width and height leaves about a quarter of the original pixel area, and GIF bytes track pixel area fairly closely. So a 50% resize normally produces a much lighter file.

It never tracks perfectly. Headers, palettes, and per-frame overhead don't shrink with the picture, and a GIF with hundreds of frames carries more of that fixed weight than a short loop does. We'll publish the exact percentages here once the full run is recorded, rather than quoting a figure we haven't measured.

Two things move the result more than anything else. Frame count comes first: a long capture pays its per-frame cost hundreds of times over, so resizing helps but doesn't rescue it. Color complexity comes second: photographic footage with heavy dithering resists shrinking harder than flat graphics or screen recordings do.

If your own numbers land far below the pattern above, the GIF was probably already optimized once before it reached you. There's nothing wrong with the file, and there's not much left on the table either.

FAQs

These are the questions people actually send us about resizing animated GIFs: quality, method, the difference between smaller pixels and smaller files, and the Discord error everyone hits at least once. Short answers, no marketing.

Scale down, never up, and keep the aspect ratio locked. Shrinking an animated GIF resamples pixels that already exist, so the result stays sharp. Enlarging invents pixels that were never captured, which is where the mush comes from. Stick to 50% or 25% steps when you can.

Sources and trust

Every platform limit quoted on this page is taken from the platform's own documentation, not from other tool sites. Where a platform doesn't publish a figure, this page lists dimensions and nothing more. Both sources are linked below so you can check them yourself.

Platform limits verified against:

Last updated: August 14, 2026 - Built by Shafiullah Tareen.

GIF compressor

Same GIF, smaller file. Keeps your dimensions and works down to a size target.

GIF speed changer

Re-time the animation from 0.1× to 8× and pick how many times it loops.

GIF cropper

Cut it square before resizing, so a square preset doesn't leave empty space.