Image Resizer
Resize to exact pixels or a social preset with aspect ratio locked.
Image & Photo
Shrink JPG, PNG and WebP with a quality slider and live size readout.
For photographs, quality 0.80 is the practical floor before artifacts become visible at 100% zoom. That setting typically produces a file 88–92% smaller than the camera original.
Here is what that looks like on a real 4032×3024 iPhone photo, 4.1 MB as shot:
| Quality | Output size | Reduction | Visible difference |
|---|---|---|---|
| 1.00 | 3.6 MB | 12% | None — near-lossless re-encode |
| 0.92 | 1.1 MB | 73% | None at any zoom |
| 0.80 | 382 KB | 91% | None at 100%; slight softening at 400% |
| 0.70 | 256 KB | 94% | Faint ringing on high-contrast edges |
| 0.60 | 188 KB | 95% | Visible blocking in skies and gradients |
| 0.40 | 118 KB | 97% | Obvious artifacts — thumbnails only |
The exception is any image with hard edges — screenshots, logos, text, line art, charts. JPEG compression works by discarding high-frequency detail, and hard edges are entirely high-frequency information. Compress a screenshot as JPEG at 0.8 and the text develops a visible halo. Use PNG or WebP for those.
Format choice usually saves more bytes than quality tuning does. WebP at the same perceptual quality is 25–34% smaller than JPEG; AVIF is another 20% smaller than WebP.
| Format | Best for | Transparency | Browser support (2026) | Typical saving vs JPEG |
|---|---|---|---|---|
| JPEG | Photographs, universal fallback | No | 100% | baseline |
| WebP | Everything on the web | Yes | ~97% | 25–34% smaller |
| AVIF | Photos where size matters most | Yes | ~93% | 45–55% smaller |
| PNG | Screenshots, logos, line art | Yes | 100% | larger for photos |
| SVG | Icons, logos, diagrams | Yes | 100% | n/a — vector |
The safe 2026 default for a website is WebP with a JPEG fallback via <picture>. AVIF is worth it for hero images where the byte saving justifies the encode time, but it encodes far more slowly and Safari support only stabilized recently.
It decodes the image into an ImageBitmap, draws it onto an OffscreenCanvas, and calls canvas.convertToBlob() with your chosen format and quality. That routes into the same C++ encoder your browser uses to save images — libjpeg-turbo for JPEG, libwebp for WebP — so the output is byte-for-byte comparable to what a desktop tool produces.
Two consequences follow from that. First, the work happens in a Web Worker, so the interface stays responsive while a 50 MP image encodes. Second, EXIF metadata — including GPS coordinates — is stripped, because canvas re-encoding does not carry it over. That is usually what you want before posting a photo publicly, and it is worth knowing if you needed the metadata kept.
Because PNG is lossless, and re-encoding an already-optimized PNG can only add overhead. If you feed a PNG through a canvas and export it as PNG again, you get the same pixels with a possibly less efficient filter selection.
The fix is to change format rather than quality. A screenshot saved as PNG at 800 KB usually lands around 120 KB as lossless WebP, with pixel-identical output. This tool flags that case and suggests the format switch when the PNG output would exceed the input.
No server-imposed one. The constraint is your device’s memory, since the image has to be decoded to raw RGBA before it can be re-encoded — a 100 MP image needs roughly 400 MB of RAM while it is being processed.
In practice that means images up to about 60–80 megapixels are comfortable on a modern laptop, and around 25 megapixels on a mid-range phone. By comparison, the free tiers of the major upload-based compressors cap at 5 MB per file and 20 files per hour.
No. Compression changes how the pixels are encoded, not how many there are. To change dimensions, use the Image Resizer — and note that resizing usually saves far more bytes than compression does, because file size scales with pixel count.
Both are available. JPEG and WebP quality below 1.0 are lossy. PNG and WebP at quality 1.0 are lossless. The slider is disabled when you pick a lossless output format.
Yes, as a side effect of canvas re-encoding. That removes location, camera model and timestamp. If you need EXIF preserved, this tool is not the right one.
Yes. Drop as many as you like; each is processed in sequence in a worker with its own progress bar, and you can download the whole batch as a ZIP.
On Safari and modern Chrome, yes — the browser decodes HEIC natively and this tool re-encodes to your chosen format. On browsers without HEIC decode support you will get an error, and the workaround is to export as JPEG from Photos first.
0.80 for photographs in article bodies, 0.85 for hero images, 0.75 for thumbnails. Below 0.70 the artifacts become visible on any screen with decent contrast.
No. Open the Network tab and compress a file — no request appears. The image is read with the File API and processed by your own CPU and GPU.