Image Compress

Image compressor

Save as

Nothing is uploaded: every image is processed in this browser

Batch · in-browser · nothing uploaded

Compression re-encodes a picture at a lower quality setting, discarding detail the eye is least likely to notice. Dropping a JPEG from quality 95 to 78 typically halves the file with no visible difference, and saving the same photograph as WebP is another 25–30% smaller again. Capping the longest side saves far more than either.

How to compress images

1 Drop in as many images as you like; there is no limit, because nothing is uploaded.
2 Set the quality. Around 78 is the sweet spot for photographs, 85 for anything being printed.
3 Cap the longest side if the images are larger than they need to be.
4 Switch the output format if a different one suits the picture better, then download individually or as a ZIP.

Resolution usually matters more than quality. A 4000-pixel photograph displayed at 800 pixels wide is carrying twenty-five times more data than it can show, and capping the longest side removes that waste before the quality setting does anything at all. Compress first by dimension, then by quality. Doing it the other way round means throwing away detail from pixels you were about to discard anyway.

Picking the output format

The three formats fail in different places, and the right one depends on what the picture is rather than on what it currently happens to be. JPEG is lossy and made for photographs; it has no alpha channel, so any transparency becomes solid. PNG is lossless, which means the quality slider is inert on it and a different set of moves applies — the PNG compressor covers those. WebP takes on both: lossy mode competes with JPEG on photographs at roughly 25–30% smaller for matching quality, and it keeps transparency, which PNG only manages losslessly. Every current browser reads it, so the old compatibility argument has gone; the remaining friction is outside the browser, where some desktop software and a few email clients still handle it badly. AVIF is smaller again, but slower to encode and less universally supported, which is why WebP is still the safer default.

The quality number itself is not a percentage of anything and is not comparable between encoders. It sets how coarsely the encoder quantises each 8×8 block of frequency coefficients, so quality 78 in one JPEG library and 78 in another are different files. What is comparable is the shape of the curve: the file size falls steeply from 95 down to about 80 while almost nothing visible goes, then flattens, while the artefacts — ringing along hard edges, blocking in flat gradients like a clear sky — arrive quickly below 60. That is why the useful range is narrow and why anything outside 60 to 90 is usually a mistake in one direction or the other.

Compressing the same file twice

JPEG loss compounds. A file re-encoded five times looks visibly worse than the same file compressed once to the same final quality, because each pass quantises what the previous pass already threw away. Always work from the original rather than from a copy that has been through a chat app, and keep that original if you might need a different size later. Generation loss is exactly why a picture reposted repeatedly ends up looking the way it does.

What people use it for

  • Getting a batch of photos under an upload limit
  • Preparing images for a website
  • Shrinking a folder of screenshots before emailing
  • Reducing a phone camera roll before archiving
  • Re-encoding camera JPEGs at a lower quality
  • Converting a website image set to WebP

Questions

As many as your machine will hold. There is no server, so there is no upload limit and no queue. The only constraint is memory.

MDN: image file type and format guide
Was this tool any good?
Internal signal only · I use it to find the tools worth rebuilding