Back to home

Image Compressor

Compress an image, resize it, or convert it between JPEG, PNG, and WebP — processed entirely in your browser, nothing uploaded to a server.

How the compression actually works

The image is decoded and redrawn onto an in-memory canvas at your chosen size, then re-encoded in the target format using your browser's own image encoder — the same machinery a native app would use, running locally instead of on a server. JPEG and WebP support a quality slider because they're lossy formats that trade fine detail for file size; PNG is lossless, so there's no quality setting to adjust — its file size depends only on resolution and image complexity.

WebP usually produces the smallest file for a given quality level and is supported by all modern browsers, so it's a good default unless you need JPEG specifically for compatibility with older software. Resizing (limiting the maximum width) often has a bigger impact on file size than the quality slider alone, especially for photos straight from a phone camera that are far larger than they need to be for web use.

Frequently asked questions

Is my image uploaded anywhere?

No — the entire process (decoding, resizing, re-encoding) happens locally in your browser using the Canvas API. The image file never leaves your device, which makes this safe for private photos too.

Which format should I pick?

WebP for the smallest file size with good quality, if your use case supports it. JPEG for maximum compatibility with photos. PNG only if you need transparency or the image is a screenshot/graphic with sharp edges and flat colors, where lossy compression tends to look worse.

Why didn't the file get smaller?

If the image was already compressed efficiently (or you picked PNG for a photo, which is usually a poor fit), the output can end up larger than the original. Try lowering the quality slider or switching to JPEG/WebP, or enable the max-width resize if the image resolution is larger than you actually need.

···