Image Compress
Quality slider to reduce photo file size — fits Gmail's 25MB attachment limit and common web upload limits.
JPG has no transparency — when converting from PNG/WebP, the transparent background is filled with white.
Recommended: 0.7–0.85 (visually lossless, 30–60% size reduction)
File size by format & quality
Estimates for a 3000×2000 px landscape photo (original JPEG ~4MB). Actual size depends on image complexity.
| Format | Quality | Estimated size | Notes |
|---|---|---|---|
| JPEG | 0.95 | 2.5–3MB | Near-lossless, print OK |
| JPEG | 0.80 | 1–1.5MB | Web-recommended, no visible loss |
| JPEG | 0.60 | 500–800KB | Sufficient for social / messaging |
| JPEG | 0.40 | 300–500KB | Thumbnails / previews |
| WebP | 0.80 | 500–800KB | ~30% smaller than JPEG |
| PNG | — | 5–10MB+ | Lossless, supports transparency, large |
When compressing backfires — recompression & generation loss
What if I compress an already-compressed JPG again?
toBlob, so compressing a JPG that was already saved at 0.7 again at 0.7 barely shrinks the file while dropping quality one more notch. This is called generation loss. Avoid compressing the same photo repeatedly — export once from the original at the quality you want.
It got bigger after compression (the + sign)
Lowering quality barely reduces the size
Compressing also strips location (EXIF) data
This tool redraws the photo onto a canvas and exports with toBlob, and in that step the EXIF metadata baked into the original (GPS coordinates, capture time, camera model) does not carry over to the result. Canvas re-encodes pixels only and doesn't copy metadata — so compression also removes location and device info as a side effect.
That keeps your home location from leaking when you post photos to social media or marketplaces. To strip only the metadata while keeping full quality, use EXIF removal.
Related tools
What happens to EXIF data (location, capture time)?
Can it handle large files (20MB+)?
Why is the quality slider disabled for PNG?
toBlob('image/png') ignores the quality argument. To shrink a PNG, switch the output format to JPEG or WebP, which actually shrinks via lossy compression.
Why is WebP smaller than JPEG?
Frequently Asked Questions
What can I use compressed photos for?
Is the original file uploaded to a server?
Does PNG also get compressed?
Quality dropped too much after compression.
Can I compress multiple images at once?
Where doesn't WebP open?
References
- HTMLCanvasElement.toBlob() — MDN
- WebP specification — Google Developers
- JPEG (ITU-T T.81) standard — ISO/IEC 10918-1