Image Compressor — Free JPG, PNG & WebP Compressor (No Upload)
Shrink JPG, PNG, or WebP files. Before/after size shown side-by-side. Files never upload.
Drop an image here, or
Max 25 MB. Files never leave your browser.
Source
× · ·
Output
Processing…
× · · (%)
How to use
- 1 Drop an image (max 25 MB).
- 2 Pick output format and quality.
- 3 See the before/after size in real time.
- 4 Download the compressed result.
Why use this tool
- Quality slider gives you direct control over the size/quality trade-off.
- WebP output typically gives the smallest files.
- See size delta percentage instantly — easy to dial in the sweet spot.
- Pure client-side — no upload, no signup.
Frequently asked questions
What quality is "good enough"?
For web — 75–85% is usually visually identical to the original at a fraction of the size. Test with your specific image and screen.
Why does PNG output not honor the quality slider?
PNG is lossless — quality is fixed at 100%. Switch to JPG or WebP for adjustable compression.
How does this compare to TinyPNG / Squoosh?
Squoosh has more advanced encoders (MozJPEG, libwebp). For best compression, use Squoosh. This tool prioritizes simplicity and no external dependencies.
What is Image Compressor?
An Image Compressor is a tool that reduces the file size of an image while keeping its visible quality acceptable for screen or print. Lossy formats (JPG, WebP) drop perceptual detail; lossless modes re-encode without quality loss. Browser-based compressors run the encoder in JavaScript or WebAssembly so the original image never leaves the user's device — important for screenshots, design drafts, or anything not yet public.
Features
JPG, PNG, and WebP output
Choose Auto (keeps PNG as PNG, everything else becomes JPEG) or force JPG, WebP, or PNG output regardless of the source format.
Quality slider (10-100%)
A 10-100 range input controls the lossy encoder quality passed to canvas.toBlob()/convertToBlob(); re-runs the compression live as you drag. Has no effect on PNG output, which is always lossless.
Before/after size comparison
Displays original vs. compressed file size and the percentage delta as soon as processing finishes, so you can see the exact savings before downloading.
Runs entirely in the browser
The image is decoded with createImageBitmap() and re-encoded on an HTML/Offscreen canvas in JavaScript; nothing is sent to a server. Input is capped at 25 MB.
Example
Input
photo.png — 1920x1080, 3.1 MB, has transparent corners, target format = Auto, quality = 75%
Output
photo.jpg — 1920x1080, ~340 KB (about 89% smaller), transparent areas filled with white background, JPEG quality 0.75
Common use cases
-
1
Shrink screenshots before sharing
Compress a PNG screenshot down to a smaller JPEG or WebP before attaching it to a ticket, email, or chat message.
-
2
Optimize images for a web page
Reduce photo file size at a chosen quality level to cut page weight and improve load time without a build-tool image pipeline.
-
3
Compress a design draft privately
Shrink an unpublished mockup or personal photo without uploading it anywhere, since the canvas re-encode never leaves the device.
How Image Compressor compares to alternatives
| Feature | Zerethon Tools | Typical online tools | Desktop apps |
|---|---|---|---|
| Files leave device | No | Yes (upload) | No |
| JPG / PNG / WebP | All three | Usually JPG only | All three |
| Before/after preview | Yes | Sometimes | Yes |
| Watermark | No | Sometimes | No |
| Free | Yes | Yes | Often paid |
Image Compressor re-encodes a JPG, PNG, or WebP file through the browser's Canvas 2D API (createImageBitmap + toBlob/convertToBlob) at an adjustable quality setting, then shows the before/after file size. Output format defaults to 'auto' (matches the input, except non-PNG inputs are re-encoded as JPEG) or can be forced to JPG, WebP, or PNG; JPEG output flattens transparency onto a white background since JPEG has no alpha channel. Processing happens entirely client-side via the Canvas API — the file is read into memory and never uploaded to a server, with a 25 MB input cap.
- Category
- Creator
- Pricing
- Free
- Privacy
- Browser-based
- Signup
- Not required
References
- Canvas API — MDN Web Docs
- HTMLCanvasElement: toBlob() method — MDN Web Docs
- WebP Container Specification — Google Developers
- T.81 : Information technology - Digital compression and coding of continuous-tone still images - Requirements and guidelines (JPEG) — ITU-T
Privacy
Your data never leaves your browser unless explicitly stated. Image Compressor runs entirely client-side — no server upload, no logging, no tracking of your input.
Build, share, and grow on Zerethon Social
Free signup. Earn points, collect achievements, and connect with creators worldwide.