Shrink a photo · hit an exact size · convert to WebP. Runs in your browser.
The whole thing runs in your browser using the HTML canvas. Your file is never sent to a server, which is also why it works offline once the page has loaded.
No. The compression happens on your device in JavaScript. If you open your browser's network tab you will see no request carrying your file. That matters for private photos, documents, client work, and anything under an NDA.
Pick “Under 1 MB” or “Under 2 MB” in Target size. The tool lowers quality step by step (a binary search) to land just under the limit, then checks the result. If even the lowest quality is too big, it scales the image down. Many upload forms cap files at 1 MB, 2 MB, or 5 MB, so this is the fastest way to fit.
For photos, “lossless” is a tradeoff: you keep every pixel but the file barely shrinks. The practical middle is WebP at 80–90% quality, which most people cannot tell from the original at normal viewing size. Start at 82% and only go lower if the file is still too big. For screenshots, logos, and flat graphics, PNG stays crisp but is larger; WebP usually beats both.
Choose WebP (or leave it on Auto) and download. WebP typically lands 25–35% smaller than an equivalent-quality JPEG and supports transparency, which JPEG does not. Every current version of Chrome, Firefox, Safari, and Edge reads it.
Photos can carry hidden data: camera model, GPS location, date, editing software. Re-encoding through the canvas drops it, which shrinks the file a little and keeps your location out of the picture. Leave it on unless you specifically need that data.
PNG is lossless, so there is no quality dial to turn down. To shrink a PNG, either switch the output to WebP (keeps transparency, much smaller) or set a max width to reduce the pixel count. Screenshots are the one case where a straight PNG re-save helps at all.