Your files never leave this device — 100% in-browser

Compress Image

Make any photo smaller with a live quality slider and optional downscaling — every byte of the work happens on your device.

Drop a photo, watch the size line, and move the quality slider until the trade-off suits you — every change re-encodes instantly, right in this tab. Add a max width to downscale oversized camera photos, and switch the output between JPG and WebP (typically 30–60% smaller at the same setting). Nothing uploads.

Last verified 2026-08-15 — this tool passed 79 automated end-to-end checks

quality 92%
max width (px)
Drop images here, or click to browse
converts to JPG · live quality slider · optional downscale
01 — SEE THE TRADE-OFF
The size line updates on every slider change, so you pick the exact quality/size balance instead of trusting a preset.
02 — TWO LEVERS
Quality controls encoding loss; max-width removes pixels a 4,000px camera photo never needed for the web. Together they do 10–20× reductions.
03 — PRIVATE
Compression runs in your browser — the photos you are shrinking for a visa form or a listing never touch a server.

How to use

  1. Drop your file(s) into the box above — or click it to browse.
  2. Conversion starts immediately; the tabs switch to a different output format. Adjust the quality slider to re-encode instantly.
  3. Click Download on each finished file — or Download all (.zip) for a batch. Nothing was uploaded at any point.

Where the size actually goes

Two things make a photo heavy: pixel count and encoding quality. A modern phone shoots 4,000+ pixels wide, but a web page, chat app or upload form rarely displays more than 1,600 — so downscaling alone often cuts 80% with zero visible cost. The quality slider then trims what the encoder keeps: our measured curve shows size climbing gently up to ~80, steeply after 90, and exploding at 100. The practical recipe for "make this fit under 1 MB" is almost always max-width first, quality second.

Choosing WebP output applies the same recipe with a better encoder — in our measurements it ran 30–61% smaller than JPG at the same quality setting. Stick to JPG when the destination is old software, e-mail or print.

What each control does
ControlEffectVisible cost
Max widthRemoves pixels (e.g. 4032 → 1600)None at typical display sizes
Quality 92 (default)Light encoding lossNone in normal viewing
Quality 70–80Strong size cutMinimal on photos
Quality ≤ 50AggressiveSoftness, ringing on edges
JPG → WebP switch30–60% smaller at same settingNone (modern browsers)

When NOT to compress

  • Archival originals — compression is one-way; keep the camera file and compress copies.
  • Images that will be edited again — every lossy re-save stacks artifacts; edit first, compress last.
  • Text-heavy screenshots — lossy encoders blur small text first. Keep PNG, or downscale without dropping quality.
  • Already-optimized files — a 40 KB thumbnail has little left to give; check the size line before keeping a re-encode.

Frequently asked questions

How do I hit a specific target like "under 500 KB"?

Set a sensible max width first (1600 px covers most uses), then walk the quality slider down and watch the size line — it updates on every change until the number fits.

Can I compress HEIC photos directly?

Yes — iPhone HEIC decodes in your browser and comes out as compressed JPG or WebP in one step.

Why did my PNG screenshot get bigger as JPG?

Flat-color graphics compress superbly in PNG and poorly in photo codecs. Compress photos here; keep interface screenshots as PNG or convert them to lossless-friendly formats.

Is anything uploaded?

No — decoding, scaling and re-encoding all run in your browser. Verify it in the network tab: zero upload requests.