gizmobench
BrowseDaily

GIF Compressor

Open a GIF and reduce its file size with three controls: output width, colours per frame, and how many frames to keep. Crop mode keeps a selected rectangle from every frame. Compare the measured before-and-after sizes as you adjust the settings, then download the result. Compression happens in your browser. An already optimized GIF can grow when re-encoded, so keep the original if it is smaller.

Originalnothing open

Drop a GIF here, or choose one below.

0 bytesno timeline yet
Compressednothing yet

Every frame is decoded and written again in this tab.

0 bytesno timeline yet

· or drop one anywhere on the stage

Never uploadedNo accountUp to 20 MBUp to 300 frames
Width
Colors
Keep every
Area

No GIF open yet. Choose one, or drop it on the stage.

  • Sizemeasured on both files, not estimated
    Open a GIF to measure it.
  • Durationframe delays rebalanced
    Open a GIF to read its timeline.
  • Framesevery frame kept
    Open a GIF to count them.

Three levers, shown separately because they do different things: the width scales every frame, the palette limits how many colours a frame may use, and the frame step drops frames and hands their time to the frame before them. The ceiling is 20 MB, 300 frames and 80 million decoded pixels, because every frame is unpacked to full size in the memory of this tab while it works. The panes show the first frame of each file; the GIF you download animates.

Decoded and written here, frame by frame. Decoded and re-encoded in your browser, so the file never leaves this machine; sizes are measured on the result, not estimated. Thinning preserves the normalized timeline, which treats delays below 20 ms as 100 ms. Exports loop continuously and can come out larger than the original.

Common questions

What do the three controls actually change?
Width scales every frame, and the height follows the original shape so nothing is stretched: halving the width takes roughly three quarters of the pixels out of the file. Colors is the size of the palette each output frame is allowed, 256, 128 or 64, and each frame gets its own palette chosen from its own pixels, so cutting it to 64 costs the most in photographic gradients and very little in flat colour or line art. Keep every drops frames: every 2nd or every 3rd, which takes out half or two thirds of the image data. They are shown separately because they damage different things, and the measured size beside the result pane tells you what each one bought.
Why did my GIF come out larger instead of smaller?
Two reasons, and the tool reports both with the real numbers rather than hiding them. The first is that you asked for no reduction: full width, 256 colours and every frame means the file is only rewritten, and a rewrite can land anywhere. The second is how GIF stores animation. Many GIFs only store the rectangle that changed in each frame, while this tool composites every frame, writes it out whole and clears the canvas between frames, which is what makes cropping, resizing and frame thinning correct. A GIF that was already optimised that way can grow when it is rebuilt. When that happens the result pane and the Size row both say larger, with both sizes, and the original is the file worth keeping.
Is my GIF uploaded anywhere?
No. The file is read by a JavaScript GIF decoder running in this tab, redrawn on a canvas here, and written back out by a JavaScript GIF encoder here. There is no upload, no queue, no account and no request of any kind: no byte of the animation reaches a server, an analytics call or an error report. The only thing kept between visits is the palette size and frame step you chose, stored in this browser, and the platform's Start over button clears that.
What are the size limits, and why does a local tool have any?
Input is limited to 20 MiB (20,971,520 bytes), 300 frames and 80 million decoded pixels, calculated as width times height times frame count. These are this tool's processing limits, not universal browser limits. Decoding expands compressed frames into memory, so a small file can still exceed the pixel cap. A 50 MB or 100 MB GIF is not supported. Files above a limit are refused with a reason; shorten or resize them with another tool before reopening.
Does dropping frames make the animation shorter or faster?
Dropping frames keeps the duration of the normalized timeline. Each dropped frame gives its delay to the kept frame before it, then delays are stored in whole hundredths of a second. This tool treats original delays below 20 ms as 100 ms; that can differ from the literal timing stored in a GIF or from another viewer. The export loops continuously even if the source had a finite loop count. Keep every frame avoids thinning, but still re-encodes the animation with these timing rules.
Can I crop a GIF here as well as resize it?
Yes. Set Area to Crop and four fields appear: left, top, width and height, in the picture's own pixels. The rectangle is read against the full canvas, never against an individual frame, which matters because GIF frames are often smaller than the canvas and offset inside it. Every frame is composited first and then the same rectangle is taken from each one, so the crop cannot drift from frame to frame, and the animation keeps its timeline. A rectangle that runs past the edge is pulled back to the edge, and one with no area is refused with the reason.
Why does the result look banded at 64 colours?
Because a smaller palette has fewer colours to spend on a gradient, and this encoder maps each pixel to the nearest palette entry without dithering. That is the right trade for the animation most people are compressing, screen captures, cartoons, flat colour and text, where 64 colours are nearly indistinguishable from 256 and the file is much smaller. A photographic or heavily shaded GIF bands instead, and 128 or 256 colours with a smaller width usually looks better than 64 colours at full size. Both files are in front of you, so compare the first frames before you download.
How can I reduce a GIF below 256 KB, 512 KB, 1 MB or 10 MB?
Open a GIF within the input limits and lower Width while keeping its aspect ratio. Compare the output size, then try 128 or 64 Colors, or Keep every 2nd or 3rd frame if the motion still looks acceptable. Crop unwanted edges when useful. There is no automatic target-size search or guaranteed result. KB and MB displays are rounded using 1,024 bytes per KB. Compare the exact byte count in the status line with the receiving site's limit before uploading, and inspect the downloaded file when the limit is close.
How do I compress a GIF for Discord, Steam or a social post?
Read the current file-type, dimension and byte limits for the exact upload surface. Reduce the GIF here and check the downloaded file, then upload it yourself. A Discord emoji, sticker, banner and ordinary attachment can have different rules; a smaller GIF is not automatically a valid sticker. The tool does not connect to an account or validate platform acceptance. For a square animation, open GIF Cropper and set a square crop rectangle.
Can I reduce a GIF without losing quality?
This is a re-encoder, not a lossless GIF optimizer. Smaller width resamples pixels, fewer colours can cause banding, and thinning removes frames. Even at original width, 256 colours and every frame, palettes are rebuilt and the output may differ or grow. Start with the mildest settings that meet your need, compare the animation and retain the original.
Can I trim the GIF duration, crop a circle or compress a batch?
This tool processes one GIF and crops rectangular image areas. It has no start/end time cutter, circular transparency mask or batch queue. Frame thinning preserves the normalized duration; it does not select a shorter clip. Cropping changes the picture area on every frame and does not remove a chosen time range.
Can I compress GIFs on a Mac or convert a video here?
Use this page in a current browser on a Mac or another device, choose a local .gif and download the result. There is no desktop installer. MP4, MOV, WebM, APNG and WebP inputs are not decoded here; convert them to GIF first. WebP to GIF is a separate utility. This page does not provide AI compression or make a GIF from a video.

Decoded and re-encoded in your browser, so the file never leaves this machine; sizes are measured on the result, not estimated. Thinning preserves the normalized timeline, which treats delays below 20 ms as 100 ms. Exports loop continuously and can come out larger than the original.