Images & Design
Compress a GIF to a target size like 2 MB
Upload a GIF, APNG, WebP or AVIF animation and set a size limit. You get the smaller file and what was cut (frames, colours or size), or a clear answer if it cannot fit.
or drop it here
- GIF / APNG / WEBP / AVIF
- Up to 1 file
Reduce dimensions until the confirmed byte target is met or attempts are exhausted
- Candidate widths: 960, 720, 540 and 360 px
- Frame rate: 12 fps
- Actual output bytes are recorded
optimized-720.webp · manifest.json
One clear job, from source to download
- 1
Add the source
Supported formats and limits are visible before the upload.
- 2
Confirm the settings
Review the exact source, options, units and access before processing.
- 3
Inspect and download
Check the preview and warnings, then unlock the complete package.
Getting an animation under a file size limit
What you upload
You upload one animated file per job as GIF, APNG, WebP or AVIF. Then you set the maximum size in KB, for example the limit of the form you need to upload to. The output stays animated and does not collapse into a single still frame. The tool reduces width, frame rate or colours until the file fits or the attempts run out.
What you get back
You get the optimized animation and manifest.json. The size shown is measured on the encoded file, not estimated from the settings, so it matches what an upload form will see. The manifest lists every reduction made to width, frame rate or palette. If the target cannot be reached, the job reports a clear miss with the smallest result it managed. A file above your target is never marked as passed.
Floors you set
Besides the size limit you can set a minimum width and a minimum frame rate. The optimizer respects both, even when that means missing the byte target. Set them to the point where the animation still looks right for its purpose. A tight size limit with high floors will often end in a miss. Whether the smaller file is good enough is your call, so play it before you use it.
Questions before you run it
Which animated formats can I upload?
GIF, APNG, WebP and AVIF, one file per job. The output stays animated rather than collapsing to a single still frame.
How does it decide what to reduce first?
It works through candidate widths and frame rates inside the floors you set, then records which dimension, frame-rate or palette reduction produced the file you download. Each step is listed in manifest.json.
What if the target size cannot be reached?
The job returns a clear miss together with the smallest result it managed. A file above the target is never marked as passed.
Can I stop it dropping below a certain width or frame rate?
Yes. Minimum width and minimum frame rate are controls you set beforehand, and the optimizer respects them even when that means missing the byte target.
Is the reported size an estimate or the real file size?
The bytes shown are measured on the encoded output, not predicted from the settings, so the number matches what an upload form will see.