GALAXY OF TOOLS

IMAGE SECTOR

GIF Compressor

Shrink animated GIFs with fewer colours, lossy frame optimisation, frame dropping and resizing — animation kept.

Drop an animated GIF here or click to choose One GIF at a time · static GIFs work too · paste with Ctrl+V
One palette is shared by every frame.
Re-uses pixels that barely changed since the last frame. 0 = only identical pixels.
Delays are merged, so the speed stays the same.
Halving the size cuts pixels by 75%.
Dithering Smooths gradients without flicker between frames.

Runs entirely in your browser. Nothing you enter or upload is sent to a server.

Make animated GIFs smaller without losing the animation

Animated GIFs are everywhere — reaction clips, product demos, stickers, banners — and they are often far bigger than they need to be. This GIF compressor decodes every frame of your GIF and rebuilds it with the techniques dedicated GIF optimisers use: one shared palette, transparent pixels wherever nothing changed, optional lossy matching, fewer frames and a smaller size.

You see the original and the optimised animation playing side by side, with the frame count, dimensions, duration and file size of both, so you can trade quality for size with confidence. The GIF is processed entirely in your browser; nothing is uploaded.

How to use the GIF Compressor

  1. Drop a GIF on the upload area, click it to choose one, or paste it with Ctrl+V.
  2. Pick the number of Colours — 128 is a good start; simple graphics often look fine at 32 or 64.
  3. Raise the Lossy level to re-use pixels that barely changed between frames; this usually saves the most.
  4. If it is still too big, drop frames or reduce the Size. Turn on dithering if gradients show bands.
  5. Compare both animations, then press Download GIF.

GIF Compressor features

Frame differencing

Pixels that are the same as on the previous frame become transparent, so each frame only stores what moved — exactly the kind of data GIF’s LZW compression packs tightly.

Lossy optimisation

The Lossy slider treats nearly identical pixels as unchanged, removing the shimmer of noise that bloats GIFs made from video.

One shared palette

A single global palette is built from all frames, avoiding up to 768 bytes of local colour table per frame and keeping colours stable.

Frame dropping with timing kept

Drop every 2nd, 3rd or 4th frame; the removed frames’ delays are added to the frames before them, so the animation runs at the same speed.

Transparency and looping kept

Transparent GIFs stay transparent, and the original loop setting is copied into the new file.

Built-in decoder

Interlaced GIFs, local palettes and every disposal method are decoded in the page itself; encoding uses the open-source gifenc library (MIT licence).

Why animated GIFs get so large

GIF dates from 1987. Each frame is a picture of up to 256 colours compressed with LZW, and unlike video formats there is no motion prediction. Many apps that export GIFs write every frame as a complete image with its own palette, even when only a small part moves. The result can be several megabytes for a few seconds of animation.

Most of the savings come from not storing the same pixels again. When a pixel is unchanged it is written as transparent, so the previous frame shows through; long runs of transparent pixels cost very little. Lossy matching extends this to pixels that changed by an amount you would not notice, which matters for GIFs converted from video, where compression noise makes almost every pixel differ slightly.

Which setting to change first

GoalSettingTypical effect
Biggest saving, little visible changeLossy 20–40Large savings on GIFs made from video
Simple graphics, logos, textColours 32–64Smaller files with no visible loss
Hard size limit for chat or emailSize 50%Roughly a quarter of the pixels
Long or very smooth animationsDrop every 2nd frameAbout half the frames, same duration
Banding in skies or gradientsOrdered ditheringSmoother look, slightly larger file

Frame timing and browser quirks

GIF frame delays are stored in hundredths of a second. Browsers treat a delay of 0 or 1 hundredth as a tenth of a second, so very “fast” GIFs actually play at 10 frames per second; the tool uses the same rule when it merges delays, so the speed you see is the speed you get. Ordered dithering is used instead of error diffusion because its pattern stays fixed from frame to frame, which avoids flicker and keeps frame differencing effective.

If the optimised GIF would be larger than the original — which can happen with GIFs that are already well optimised — the original is kept. Need a GIF in the first place? Make one with Video to GIF. For a still image, the WebP compressor or PNG compressor will give a much smaller file.

GIF Compressor FAQ

How do I reduce the size of a GIF without losing quality?

Choose 256 colours and set Lossy to 0. The GIF compressor then only removes repeated pixels and duplicate palettes; a GIF that uses no more than 255 colours in total comes out pixel-identical.

How can I make a GIF small enough for a chat app or email?

Combine settings: set Size to 50%, raise Lossy to 40–60 and drop every 2nd frame. Check the optimised size in the stats and adjust until it fits the limit.

Why is my optimised GIF not smaller?

The GIF was probably already optimised. In that case the original is kept; reduce the size, drop frames or choose fewer colours to save more.

Does the GIF compressor keep transparency?

Yes. Transparent pixels stay transparent in every frame, and the tool clears the canvas between frames whenever a moving object leaves a transparent area behind.

Will my GIF still loop?

Yes. The loop setting of the original — forever, a set number of times or once — is copied into the new GIF.

Is my GIF uploaded to a server?

No. Decoding and encoding run in your browser, so the file never leaves your device.

You might also need