Skip to content

Compress Images

Drag the quality slider and watch the size fall with a live preview — you decide the trade-off with your own eyes, and nothing is stored.

  • Never stored
  • No queue, no waiting
  • No signup, no watermark

How it works

1

Add your images

Drop JPG, PNG or WebP files — one or a whole folder.

2

Set the quality

A live preview and exact new size update as you drag. PNGs are palette-optimized losslessly-looking at dramatic savings.

3

Download

Save files one by one, or everything as a ZIP.

How the size actually comes down

Smart mode does not apply a quality number at all. For each image it encodes at several settings and compares each result with the original by structural similarity, keeping the lowest quality that still measures as visually identical. That decision is made per picture, and it has to be: on the calibration bench the same target lands on quality 77 for fur and 60 for a smooth portrait, because busy detail hides artefacts and flat tone does not. A fixed 80 would have wasted bytes on one and damaged the other. JPEGs are then written by a dedicated JPEG encoder rather than by the browser, which measures about 2 dB cleaner at an identical file size.

PNGs are routed by what is in them rather than by their extension. A picture using a few thousand distinct colours or fewer — a logo, a screenshot, a diagram — is re-encoded against an optimised palette, which is close to invisible on flat artwork and saves a great deal. A photograph saved as a PNG would band every gradient if it were palettised, so it is written as a WebP instead and the extension changes to match, because a WebP named .png is a different bug. Forcing it to stay a PNG is allowed, and gives you an honest, lossless, barely smaller file.

Target-size mode searches for the quality that fits under your ceiling separately for every file, because a screenshot and a photograph need very different settings to land on the same number of kilobytes. When even the lowest quality misses the target you are told the smallest size achievable rather than handed a file that does not fit. And nothing ever comes back bigger than it went in: where the original was already compressed efficiently, the original is what you get, with a note saying so.

When you want something else

There is no lossless option here: every compression is a re-encode, so squeezing a JPG that has already been squeezed spends another generation. jpegtran and jpegoptim rewrite a JPEG's entropy coding without touching its quantised data, and oxipng and zopflipng do the equivalent for PNG — a few per cent for nothing at all, which is the right first move on a file you must not degrade.

For a build pipeline, libvips or sharp will do this job and generate the responsive sizes and the WebP and AVIF alternates in the same pass, on a server, with nobody clicking. And the largest saving available on a photograph is not a JPEG setting at all but a newer format, which is what the JPG to AVIF page here does one file at a time.

Frequently asked questions

How does PNG compression work here?

PNGs are re-encoded with an optimized colour palette — the same technique TinyPNG made famous — which typically cuts 50-80% with no visible difference. The quality slider controls how many colours survive.

And JPG or WebP?

Lossy re-encoding at the quality you pick. The live preview shows exactly what you will get — zoom into text or faces before deciding.

Are my images stored anywhere?

No — nothing is stored at any point. Unlike the well-known compressor sites, your images are never stored.

What quality should I aim for?

For web use, the smallest setting where the preview still looks right — usually 70-85% for photos. Every image is different, which is exactly why the preview is live.

Will compressing again and again ruin my image?

Repeated lossy saves do stack losses. Compress from the original when you can, and keep it.

Good to know: Compression is re-encoding: EXIF metadata is stripped. Formats beyond JPG, PNG and WebP convert to one of those first.

Put this tool on your website

Free for any blog, class page or help article. Paste one snippet and your visitors can use it right on your page.