Image Compressor

Shrink a photo's file size by adjusting JPEG quality.

Drop images here, or click to choose (multiple allowed)
JPG or PNG — select several to compress them as a batch
Compressing…

Output is always JPEG, since that's what makes quality-based compression possible. The same quality setting applies to every image in a batch.

What this tool is for

Photos from a modern phone camera are often 3-8MB each, which is far more than most websites, email systems, or CMS uploaders actually need to display them well. That gap shows up as slow-loading pages, bounced email attachments, and content management systems that silently reject or choke on oversized uploads. This tool re-encodes a JPEG or PNG down to a smaller file size while letting you control exactly how much visual quality you're trading away, rather than applying a fixed, one-size-fits-all reduction.

It's built for anyone publishing images online: bloggers and site owners preparing photos for a page, sellers uploading product photos to a marketplace with a size cap, or anyone attaching a photo to an email that keeps bouncing for being too large. If you also need to change dimensions, not just file size, resize first with the Image Resizer — compressing before resizing wastes effort compressing pixels you're about to throw away.

How the image compressor works

This tool uses the browser's own built-in image encoder via the Canvas API's canvas.toBlob() method, requesting JPEG output at the quality value you set with the slider (a number from 0 to 1 that the browser's native JPEG encoder uses to decide how aggressively to discard fine detail). This isn't a custom compression algorithm — it's the same underlying JPEG encoder your browser already uses whenever it saves or exports an image, just exposed to you as an adjustable control. Lower quality values discard more high-frequency detail (fine texture, sharp edges) first, which is why heavily compressed images tend to develop visible blocky artefacts around edges before they look obviously blurry overall.

Because JPEG compression is applied per-image and is genuinely lossy, running the same file through compression multiple times at low quality settings will compound artefacts each time — always compress from your original file, not from a previously-compressed copy, if you want to try a different quality setting.

Choosing a quality setting

For most web photography, 70-85% gives a substantial size reduction with no visible quality loss at normal viewing size. Product photography or anything with fine detail people might zoom into benefits from staying at the higher end of that range, around 80-90%. If file size is the priority over quality — thumbnails, background images, or anything displayed small — 40-60% can cut file size dramatically while still looking acceptable at reduced display size. Below 40%, compression artefacts usually become visible even to a casual viewer.

Common situations this solves

  • A CMS or upload form rejects your photo for being too large. Compressing to 70-80% quality typically clears most size limits without a visible quality difference.
  • A web page loads slowly because of oversized images. Batch-compressing every photo on a page before uploading can meaningfully improve load time.
  • An email attachment keeps bouncing. Compressing a photo before attaching it is often the fastest fix, especially for phone photos that default to very high resolution.
  • You're uploading many product photos at once. Select multiple files and this tool compresses them as a batch at the same quality setting, rather than one at a time.

Limitations, honestly

Output is always JPEG, because JPEG is the format that supports a meaningful quality/size trade-off — if you need to keep a PNG's transparency or lossless quality, this isn't the right tool; use the Image Converter to pick PNG or WebP instead. Compression is genuinely lossy: at low quality settings, fine detail and sharp edges are the first things to visibly degrade. Because this runs in your browser rather than on a server, extremely large source images or very large batches are limited by your own device's available memory rather than any fixed cap this tool imposes.

Frequently asked questions

Why does the output always become a JPEG?

JPEG is the format that supports a quality slider for a genuine size/quality trade-off. PNG is always lossless and has no equivalent "quality level" to reduce.

What quality setting should I use?

70-85% works well for most web photos. Go higher (80-90%) for detailed images like product photography, or lower (40-60%) for thumbnails and anything displayed small.

Will transparency be preserved?

No. JPEG doesn't support transparency. Use the Image Converter and choose PNG or WebP if you need to keep it.

Can I compress multiple images at once?

Yes — select or drop more than one file and they're compressed sequentially as a batch at the same quality setting, each with its own download.

Does compressing an image reduce its pixel dimensions?

No, only file size at the same dimensions. Use the Image Resizer if you also need smaller dimensions.

Is compressing the same file twice a bad idea?

Yes, if done at a low quality setting each time — JPEG compression is lossy, so artefacts compound. Always compress from the original file rather than a previously-compressed copy.

Is there a file size limit?

No fixed limit, but very large images or very large batches are constrained by your own device's memory rather than a server-side cap.

Does this tool use any AI or machine learning?

No. It calls the browser's own built-in JPEG encoder directly — the same encoder your browser already uses for any image export.

Related tools