Most image compression tools work the same way: you upload your file to their server, their server processes it, and you download the result. That workflow has two real problems — your files leave your device, and you're at the mercy of server queues and file size caps.
There's a better way. Modern browsers can compress images entirely locally using WebAssembly — no upload required, no waiting, no privacy risk.
Before getting into how, it's worth understanding why server-based compression is a concern:
Privacy. When you upload a photo to a third-party tool, you're handing your file to a company whose data retention policy you may not have read. For photos containing personal details — faces, documents, location metadata — this matters.
File size limits. Free tiers on tools like TinyPNG cap uploads at 5 MB per file. If you're working with RAW exports, product photography, or high-res graphics, you hit that ceiling constantly.
Speed. Uploading a large file over a slow connection is the bottleneck, not the compression itself. A browser running WebAssembly can process the same file in under a second without touching your network.
WebAssembly (Wasm) lets browsers run near-native code compiled from languages like C and Rust. The same codec libraries that power server-side tools — MozJPEG, OxiPNG, libwebp — can be compiled to Wasm and run directly in your tab.
When you open imgshrnk's image compressor, the codec files load once into your browser. After that, every compression job runs locally using your device's CPU. Nothing is sent over the network.
Open the compressor — Go to imgshrnk.com/compress in any modern browser (Chrome, Firefox, Safari, Edge).
Drop your files — Drag and drop one or more images directly onto the upload area, or click to browse. JPEG, PNG, WebP, AVIF, BMP, and TIFF are all supported. Files up to 50 MB each.
Choose your settings — Pick a quality level (Light, Medium, Strong, or Maximum) and an output format. "Auto" lets the tool choose the best format for each file.
Compress — Click Compress. The processing happens in your browser tab. You'll see file size reduction percentages in real time.
Download — Download individually or grab a ZIP of all compressed files.
No account. No upload. No waiting for a server.
Results vary by image content, but typical savings with browser-based WebAssembly compression:
| Format | Typical savings |
|---|---|
| JPEG → JPEG (MozJPEG) | 30–60% |
| PNG → PNG (OxiPNG) | 20–40% |
| JPEG/PNG → WebP | 50–75% |
| JPEG/PNG → AVIF | 60–80% |
Photos with lots of detail (landscapes, portraits) compress more than flat graphics. Converting to WebP or AVIF yields the biggest savings.
One advantage of client-side compression that often gets overlooked: you can process hundreds of files at once without any per-file or per-session limits. Server-based tools throttle batch jobs to protect their infrastructure — a browser has no such reason to.
Drop 50 product photos at once, set the output to WebP at quality 80, and compress the entire batch in a few minutes. Everything stays on your machine.
The codecs used — MozJPEG for JPEG, OxiPNG for PNG, libwebp for WebP, libavif for AVIF — are the same open-source libraries used by professional image optimization pipelines at companies like Cloudflare and Shopify. The quality/size tradeoff is identical to server-side tools. The only difference is where the computation happens.
At quality 80, most people cannot distinguish a compressed JPEG from the original at normal viewing sizes.
When you upload an image to a server-based tool, your EXIF metadata — which can include GPS coordinates, device model, and shooting date — goes with it. Browser-based compression keeps that data on your device. If you want to strip EXIF before sharing, imgshrnk's metadata remover handles that in the same local, no-upload workflow.