Image Compressor & Resizer
Shrink a photo's file size in seconds. Everything happens in your browser — your image is never uploaded anywhere.
Why compress images?
Cameras and phones save photos far larger than most uses need — a 12-megapixel phone photo is often 3–6 MB, while an email attachment, a web page, or a form upload usually wants well under 1 MB. Compressing does two things: resizing (fewer pixels — the biggest win) and re-encoding at lower quality (smaller file at the same size, usually invisible above ~75% quality).
| Use | Good target |
|---|---|
| Email attachment | Under 1 MB, max width 1600px |
| Website / blog image | 100–300 KB, max width 1200–1920px |
| Job application / form upload | Often under 500 KB or even 100 KB |
| Social media | ~1080–2048px wide (platforms re-compress anyway) |
| Printing | Don't compress — keep the original |
JPEG, WebP or PNG?
JPEG is the safe default for photos — small and opens everywhere. WebP is ~25–30% smaller at the same quality and works in every modern browser, but a few old apps can't open it. PNG is lossless and keeps transparency — right for screenshots, logos, and graphics with text, but much larger for photos.
The quality slider does nothing when the format is PNG
This is not a bug and it is not specific to this page — it is how the browser works. PNG is a lossless format: it stores every pixel exactly, so there is no quality to trade away, and the browser ignores the quality value entirely for PNG output. Drag the slider from 95 down to 30 on a PNG and the file size will not move by a single byte.
Most compressors leave you to discover that for yourself. This one says so on screen the moment PNG is selected, because a control that silently does nothing is worse than a control that is missing: you drag it, nothing happens, and the reasonable conclusion is that the tool is broken. The only thing that shrinks a PNG here is the width. If you want quality to matter, the format has to change.
Two different things are being lost, and only one of them is a choice
A single "68% smaller" hides two separate operations, and they are not equally reversible:
- Resizing throws pixels away, permanently. A 4000×3000 photo reduced to 1920×1440 keeps 23% of its pixels; the other 77% no longer exist in the output. No tool, including this one, can put them back — upscaling later invents detail rather than restoring it. Your original file on disk is untouched, which is the only copy that still has them.
- Re-encoding degrades what is left. JPEG and WebP discard fine detail to save space, and the amount depends on the quality setting. Below about 70 the loss becomes visible in flat areas like skies and skin.
The tool now reports both separately, so you can tell a file that is still good enough for the job from one that only looks smaller in the size column.
Compressing an already-compressed JPEG
Every JPEG save discards a little more detail, even at the same quality number. Saving at quality 80 does not mean "reduce to 80% of original quality" — it means "apply this level of loss to whatever you gave me". Run a photo through twice at 80 and you get roughly the loss of one pass at a much lower setting; run it ten times and the flat areas visibly break up. This is called generation loss, and it is the reason to always compress from the original rather than from a previous export. The tool warns when it detects that the file you dropped is itself a JPEG.
How wide does the image actually need to be?
The default of 1920 px is generous for most web use. A typical article column is 700–800 px wide, and doubling that for high-density screens gives about 1,600 px — so 1920 already has headroom. Full-width hero images are the exception. Printing is a different question entirely: at 300 dpi, a 1920 px image prints about 16 cm across, which is smaller than A4. If the file is destined for paper, resize less or not at all.
Sources
- MDN —
HTMLCanvasElement.toBlob()— the browser API this tool uses. It documents the quality argument as applying toimage/jpegandimage/webponly, which is the source of the PNG behaviour described above, and confirms that the encoding happens in your browser rather than on a server.
Frequently asked questions
Is my photo uploaded to your server?
No. The image is opened, resized, and re-encoded entirely inside your browser using its built-in canvas — it never leaves your device. You can even use this page offline once it's loaded.
How do I hit a specific size like "under 100 KB"?
Lower the max width first (biggest effect), then reduce quality in steps — the live "after" size updates each time. For a 100 KB target, try 1000px width at 70–75% quality.
Does compression reduce picture quality?
Above roughly 75% quality the difference is invisible to most people at normal viewing sizes. Below ~60% you may notice softness or blockiness in detailed areas. The preview shows exactly what you'll download.
Why did my PNG get bigger as JPEG?
Screenshots and graphics with sharp edges compress better as PNG; photos compress better as JPEG/WebP. If the "after" size grows, switch formats.
Guides that go deeper
🗜️How to Reduce Photo File Size (Email, Uploads, Web)
Email limits, form uploads, and web images — realistic targets and the right way to hit them.
🖼️JPG vs PNG vs WebP: Which Image Format Should You Actually Use?
A practical breakdown of JPG, PNG, and WebP — what each one is good at and how to pick the right one.
You might also need
✂️Background Remover
AI cutout to a transparent PNG — your photo never leaves your browser.
🔄Image Converter
HEIC to JPG, WebP to PNG — convert between formats locally.
🕵️EXIF Viewer & Remover
See hidden GPS/camera metadata in photos and strip it out.
✂Crop for Social Media
YouTube thumbnail, Instagram, profile-circle presets with drag & zoom.