Shrink JPG, PNG and WebP photos by quality or to a target size — in your browser, never uploaded.
Basis: The photo is decoded onto a browser canvas and re-encoded as JPEG or WebP with HTMLCanvasElement.toBlob. Target-size mode binary-searches the quality for the highest value that fits. Files are never sent to a server·2026-11-02 verified·Editorial policy
Tool Overview & Key Purpose
Shrinks photos to get past email attachment caps and upload limits or to speed up a website. You can compress to a chosen quality or to a target size such as “under 500 KB”, and also scale the long edge down to cut the pixel count. Photos are processed inside this browser and are never uploaded anywhere.
Step-by-Step Usage Instructions
1STEP 1
Drop photos in or tap to choose them — up to 20 at a time, 40 MB each.
2STEP 2
Choose the output format: JPG opens everywhere; WebP is smaller and keeps transparency.
3STEP 3
Choose how to compress. “Quality” uses one number; “Target size” searches for the quality that fits your KB limit.
4STEP 4
Optionally shrink the long edge to cut the pixel count, then save photos one by one or with “Save all”.
Real-World Scenarios & Practical Cases
3 Practical CasesScenario #1
An application photo “under 300 KB”
A 4 MB phone photo set to “Target size 300 KB” with a 1,600 px long edge usually lands at 250–300 KB around quality 80 — faces stay clearly recognisable.
If the target is not reached, shrink the long edge before lowering quality. Fewer pixels hurts far less visibly than heavier compression.Scenario #2
Product photos for a blog or shop
Uploading 6,000 px originals for an image shown 1,200 px wide slows the page. A 1,920 px long edge with WebP at quality 80 often brings several megabytes down to around 200 KB per photo.
Google uses page experience as a ranking signal, and image weight is the easiest part of a page to cut.Scenario #3
Hitting an email attachment cap
Fifteen travel photos totalling 60 MB will not fit a 25 MB attachment limit. Quality 75 with a 2,048 px long edge usually brings the total under 10 MB.
“Save all” downloads the files one after another. If the browser asks about multiple downloads, allow it.How the compression happens
The photo is decoded once onto a canvas and re-encoded in the chosen format and quality.
Quality: encoded once at that quality.
Target size: a binary search over quality 1–100, at most eight tries, keeps the highest quality that fits.
Shrink long edge: if the longer side exceeds the limit, the image is scaled down in proportion. It is never scaled up.Pro Tips & Key Considerations
Below quality 80, banding starts to show in smooth areas such as sky and skin. If you need a smaller file, shrink the long edge instead.Screenshots full of text smear around the letters when converted to JPG. WebP handles them better.Compressed photos lose location and camera data (EXIF) — often an advantage when sending them to someone else.
Frequently Asked Questions (FAQ)
Sources & References
MDN — HTMLCanvasElement.toBlob()Google for Developers — An image format for the Web (WebP)Basis: The photo is decoded onto a browser canvas and re-encoded as JPEG or WebP with HTMLCanvasElement.toBlob. Target-size mode binary-searches the quality for the highest value that fits. Files are never sent to a server · 2026-11-02 verified