Image compressor

Re-encode images in your browser to reduce file size (quality slider).

Choose an image to compress.

Processed entirely in your browser — nothing is uploaded. Output is JPEG.

You attach a few photos to an email and get told the message is too large. Phone cameras routinely produce files over 5 MB per shot, and for anything that will only ever be viewed on a screen, most of that detail is wasted.

This tool keeps the image's width and height exactly as they are and lowers only the encoding quality, which is where most of the file size lives. The file never leaves your device - all of the work happens in the browser.

How it works

How it works

The selected image is drawn onto an HTML canvas at its original resolution, then re-encoded as JPEG at the quality you choose. The pixel count is untouched; what changes is how finely the colour information is stored. That is why the dimensions stay the same while the file gets smaller.

Step by step

  1. Pick a file under Choose image - compression starts immediately.
  2. Move the Quality slider (10-100%, default 80%). Every change re-compresses the image.
  3. The result line shows the before and after sizes, for example Original 2.4MB → 380KB, along with the percentage saved and the pixel dimensions.
  4. Press Download compressed to save the file as originalname_min.jpg.

Choosing a quality setting

QualityBest for
90-100%Printing or archiving. Savings are modest.
70-85%Blog posts and general web use. Differences are hard to see.
40-60%Thumbnails and previews shown at small sizes.

Worth knowing before you save

  • Output is always JPEG. A PNG with a transparent background will have that transparency filled in, usually with black.
  • JPEG is lossy, so passing an already-compressed image through repeatedly degrades it further. Keep your originals.
  • Re-encoding strips EXIF metadata such as capture time and GPS coordinates - often an advantage for images you are about to publish.
  • Flat-colour images like screenshots and logos compress badly as JPEG and can come out larger than the original. Those are better kept as PNG or converted to WebP.

Terms explained

Quality
A 10-100 setting that decides how much of the original colour detail survives the JPEG encoder. Higher means closer to the original and a larger file.
Saved
The reduction relative to the original file, calculated as (1 - compressed / original) x 100.
Lossy compression
A method that discards detail the eye is unlikely to notice in order to shrink the file. JPEG and WebP both work this way.
EXIF
Metadata stored inside a photo, including the date, camera model and often GPS coordinates. This tool removes it during re-encoding.
Canvas
The HTML element browsers use to draw images and export them back out as files. All of this tool's processing happens there.
Artifact
Visible blotching or ringing around edges that appears when the quality setting is pushed too low.

Frequently asked questions

The compressed photo looks blurry. What should I do?

Low quality settings create artifacts around edges and fine detail. Start around 80% and raise it while watching the preview. Images full of text or thin lines suffer more under JPEG, so converting to WebP or keeping the PNG is often a better choice.

Is my photo uploaded to a server?

No. Selecting, compressing and downloading all happen inside your browser, and nothing is sent over the network. Once the page has loaded, the tool even works offline.

The file got bigger after compressing. Why?

Images with flat areas of colour, such as screenshots and logos, are stored far more efficiently by PNG. Converting them to JPEG can increase the size. Keep those as PNG or convert them to WebP instead.

Can I reduce the width and height too?

Not with this tool - it only adjusts quality. To reduce the pixel dimensions, use an image resizer. For large savings, scaling down usually beats lowering quality.

Can I compress several images at once?

It handles one image at a time. For a batch, swap the file and repeat; the quality setting stays where you left it, so subsequent images only need selecting.