Image Compressor

Drop an image in, adjust the quality and download the compressed file. Everything runs in your own browser — the image never leaves your device.

Drop images here, or click to choose

Supports JPG / PNG / WebP / BMP, multiple files allowed

Set the max edge to 0 to keep the size and only compress quality. Set it to 1920 to scale down only when the long edge exceeds 1920 pixels.

About the image compressor

Images that are too large are one of the most common annoyances: an attachment upload hits a size limit, a post gets rejected for exceeding a quota, a page loads slowly. This tool does one thing — bring the file size down while keeping the difference as invisible as possible.

The two ways to make an image smaller

Shrinking an image really comes down to two levers:

  • Lossy compression (lower quality). Reduce the colour precision of each pixel slightly. The eye barely notices, but the file can more than halve. JPG and WebP work this way. Around 80% quality is usually the sweet spot between visual fidelity and size; below 70% you start to see noise.
  • Lower resolution (resize). Take 4000×3000 down to 1600×1200 and you've removed 85% of the pixels, so the size drops sharply. Photos from phones are usually far higher resolution than needed — an image on a web page rarely needs more than 1200 pixels wide.

This tool offers both: the quality slider controls the first, the maximum edge length controls the second. The most effective approach is usually to reduce the dimensions first, then the quality.

Recommended settings by use case

  • Image for a web page: max edge 1600, quality 80%. A typical blog header can go from 3MB to under 200KB.
  • ID photo / application photo: most platforms cap these at 2MB or 500KB. Don't resize (you could break a required aspect ratio); just set quality to 85%.
  • Sending "original quality" in chat: max edge 2048, quality 85%. On a phone screen this is indistinguishable from the original.
  • Archiving screenshots: screenshots are mostly flat colour, so 90% quality still compresses hard. Safe to use.
  • Product / e-commerce images: most platforms want 800×800 or 1500×1500 squares. Lock the max edge to the required value and use around 88% quality.

Why some images won't compress

If an image barely changes size, it's usually one of these:

  • The original is already a compressed JPG. There's limited room for a second pass — going from 85% to 80% saves very little. Repeated compression also accumulates damage, so quality falls each time.
  • A photo saved as PNG. PNG is lossless and was designed for line art, icons and images with an alpha channel. Storing a photograph as PNG produces an enormous file; the right move is to convert to JPG. In a browser the quality setting has little effect on PNG.
  • The image is already small. Under about 100KB there's almost nothing to gain, and re-encoding can even make it bigger — which is why this tool keeps whichever version is smaller by default.
  • The image is full of detail. Foliage, grass, gravel, fireworks — high-frequency textures change in every block, and the compression algorithm has nowhere to cut corners.

On privacy: your images really aren't uploaded

This point deserves its own section. The page uses the browser's built-in Canvas drawing API: the image is read into memory, drawn onto a canvas, and re-exported at the quality you set. Not a single line of code sends data anywhere.

Verifying it is easy: press F12 to open developer tools, switch to the Network panel, then click "start compressing". You'll see no image upload request in the list. You can also just disconnect from the network and try again — it works exactly the same.

That matters for sensitive images: ID cards, contracts, medical records, payslips. Before using any online tool, it's worth confirming where it actually sends your file. The test is simple: look for a POST request in the Network panel, or simply go offline.

Keeping quality after compression

A few practical checks:

  • Look at text edges first. The first thing lossy compression damages is the area around black text, which blurs or picks up coloured fringing. If the text is still crisp, the quality is fine.
  • Then look at flat gradient areas. Skies and walls — large smooth gradients — are where banding shows up first. Visible stripes mean you compressed too hard.
  • Finally, judge by purpose. For an image only ever viewed on a phone screen, comparing at 100% zoom is not meaningful. For something going to print, keep the original resolution wherever possible.

Try the settings on a few images first, and batch the rest once you're happy.

Frequently asked questions

How many images can I compress at once?

There's no hard cap, but browser memory is the real limit. Staying under 30 images and 20MB each is advisable. For batches of hundreds, working in smaller groups is safer.

Does the format change?

The tool doesn't convert formats on its own. The original resolution is preserved (unless you set a max edge), but the re-encoded output is uniformly JPG or WebP, decided by the browser. Converting to JPG loses any transparency, so be careful with PNG sources.

Can I hit an exact target size, like under 100KB?

Not reliably. Size and quality have no linear relationship, so it's trial and error. A practical approach: set the max edge smaller first (1000, say), then adjust quality; two or three attempts will get you close to the target.

Does compressing repeatedly degrade the image?

Yes. Lossy compression is lossy — each pass discards information, and the losses stack up. So keep one original, and export every needed size from that original rather than re-compressing an already-compressed file.

Why does the result say "original kept" for some images?

Because the compressed version came out larger than the original. That usually happens with small images that were already compressed, or with PNG line art. The tool keeps whichever is smaller automatically; you can turn that behaviour off in the options.

Related tools