Image Compressor
Compress JPG, PNG, and WebP without quality loss.
- Free
- No signup
- Files never leave your browser
How to use the image compressor
- Drop files into the zone. You can drag from your file manager or click to open a picker. JPG, PNG, and WebP are accepted; other types show an error on that row but do not block the rest of the batch.
- Pick a quality and format. The quality slider applies to JPG and lossy WebP. PNG keep mode and WebP lossless mode ignore the slider — those formats are bit-perfect re-encodings. Format choices: Keep original (each file stays in its source format) or All to WebP (everything becomes WebP, typically much smaller).
- Click Compress all. The tool processes images concurrently and shows each one’s progress, original size, compressed size, and percent saved.
- Download. Per-row buttons save individual files. The Download all (ZIP) button bundles everything into a single archive.
Lossless vs visually lossless
Here is the honest answer the marketing copy usually hides:
| Format | Mode in this tool | Truly lossless? |
|---|---|---|
| PNG keep | oxipng level 4 | Yes — pixel-identical, smaller bytes. |
| WebP keep + lossless toggle on | libwebp lossless | Yes. |
| WebP lossy | libwebp at quality N | No — visually lossless at ~90+. |
| JPG keep | mozjpeg at quality N | No — visually lossless at 90+. JPG re-encoding is always lossy. |
If you need bit-perfect output, stay with PNG keep or WebP lossless. Otherwise, drop the JPG slider to 80–85 — the savings are large and the visual difference is imperceptible at normal viewing distance.
When PNG → WebP wins
PNG is great for screenshots, icons, and graphics with hard edges. But if your image is photographic (gradients, fine detail) and currently a PNG, WebP usually halves the size at visually lossless quality. The conversion is one click in this tool.
Counter-examples: tiny icons (under 5KB), images with very few colors that oxipng can crush hard, and PNGs that other tools already minified. In those cases keep PNG.
Why the first compress is slow
Each codec is a self-contained WebAssembly module — MozJPEG, oxipng, libwebp — compiled from C/C++ to a .wasm binary. The first time you compress a JPG, the page downloads mozjpeg.wasm (~250KB) and initializes the runtime. Subsequent JPG compressions reuse the loaded module and feel instant.
The same is true for PNG (~150KB) and WebP (~250KB). Once all three codecs are warm, a 5MB photo compresses in 1–3 seconds on a modern laptop.
Privacy
This tool is the same shape as the rest of the multitool: a static HTML page that loads its JavaScript and WebAssembly from this domain, and runs everything in your browser tab. The Network tab in DevTools confirms it — once the codecs load, no further requests fire. There is no upload, no temporary cloud storage, no analytics on file content.
Related tools
- QR Code Generator with Logo — generate branded QR codes in your browser.
- JSON to CSV Converter — convert between JSON and CSV.
- Regex Tester — test and explain regular expressions live.
Frequently asked questions
Is the compression really lossless?
For PNG and WebP, yes — truly lossless. PNG uses oxipng to repack the same pixel data into the smallest possible file. WebP supports a lossless mode that round-trips bit-for-bit. For JPG, the encoder (mozjpeg) is quality-based: at quality 90 or higher you get visually lossless output, but the bytes are not bit-identical to the input. Truly bit-perfect JPG recompression is impossible without access to the original uncompressed source.
Do my images leave my browser?
No. The whole pipeline — decode, compress, encode, ZIP — runs in your browser tab using WebAssembly. Open DevTools → Network while you compress: after the codec downloads finish, no data is uploaded. The compressed bytes never reach a server.
What is the difference between lossless and visually lossless?
Lossless means the pixel values are preserved exactly — decompressing reconstructs the original. Visually lossless means the result is indistinguishable from the original to the human eye, but the underlying pixel data may differ slightly. JPG at quality 90+ is visually lossless; PNG/WebP lossless mode is truly lossless.
Can I convert PNG to WebP to save more space?
Yes. Set the output format to All to WebP. WebP typically beats PNG by 25–35% at lossless quality and much more at lossy quality. The trade-off: very old browsers (pre-2020 Safari, IE) cannot display WebP. For modern web use, WebP is a safe pick.
Why is my compressed PNG sometimes only slightly smaller?
PNGs exported from Photoshop or modern image tools are often already well-optimized. oxipng finds the best zlib parameters and strips redundant chunks, but there is no magic — if the pixel data is irregular, the floor is set by the source content. Convert to WebP for bigger savings.
How big can the batch be?
In practice, the limit is browser memory. A dozen 5MB photos works fine on a typical laptop. Hundreds of files may slow the page or crash the tab. If you need to process a whole library, split it into batches.
Why does the first compression feel slow?
The codec is a WebAssembly module (~200–500KB) that downloads and initializes on first use. The compressor lazy-loads each codec only when needed — so the first JPG, the first PNG, and the first WebP each pay a one-time setup cost (usually under a second on a fast connection). After that, every subsequent file is fast.
Is metadata stripped?
Yes, implicitly. The decode-then-re-encode pipeline does not preserve EXIF, ICC profiles, or arbitrary metadata chunks. PNG "keep" mode (oxipng) preserves the image content but strips non-essential chunks. If you need to keep EXIF (camera info, GPS), do not run those files through a compressor.
Is this tool really free?
Yes. No signup, no watermark, no usage limit, no ads. Generate as many compressed files as you like.