Image Compressor

Drop in an image, drag the quality slider, download the smaller result. Re-encodes through canvas as JPEG: your file never leaves the browser.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.

Drag & drop an image here, or

About This Tool

Draws your uploaded image to an off-screen canvas and re-exports it as JPEG at the quality you choose, using canvas.toBlob(). JPEG lossy compression trades a small amount of visual fidelity for a meaningfully smaller file, useful before attaching a photo to an email, uploading to a form with a size limit, or shipping fewer bytes to a web page.

Original and compressed file sizes are shown side by side with the percentage saved, so you can find the quality setting that keeps the image looking right while cutting the most bytes. If you need an exact pixel size instead of a smaller file at the same dimensions, use Image Resizer.

Key Features

  • Quality slider: 0.1 to 1.0 in 0.05 steps, re-compressing live as you drag.
  • Before and after comparison: Original and compressed previews shown side by side.
  • File size and savings: Exact byte counts for both, plus the percentage reduction.
  • Drag-and-drop or file picker: Either way to load a source image.
  • One-click download: Saves the compressed result as a .jpg file.

Frequently Asked Questions

Why does my PNG come back as a JPEG?
JPEG's quality slider is what makes variable compression possible; PNG is lossless and has no equivalent quality knob. Re-encoding to JPEG is how this tool achieves a smaller file size. If you need to keep a lossless format, use Image Format Converter with WebP instead.
Will I lose transparency?
Yes. JPEG has no alpha channel, so any transparent areas in the source image are flattened to a solid background (typically white) during compression.
What quality setting should I use?
0.7 to 0.85 is a reasonable default for photos: noticeably smaller with little visible quality loss. Go lower (0.4 to 0.6) for thumbnails or when file size matters more than fidelity.
Is my image uploaded to a server?
No. The file is read locally via the File API and re-encoded entirely in your browser's canvas. Nothing is sent anywhere.