Image Compressor

Shrink JPG, PNG, and WebP images locally in your browser. The output keeps the original format — no file ever leaves your device.

Drop your images here

or choose files — nothing is uploaded

Supported: JPG, PNG, WebP. The output keeps the original format.

Compression level

EXIF data and orientation are not preserved.

No images yet.

Everything happens in your browser. No image is uploaded.

How to use

  1. Drop your images into the box or click “Choose images” (up to 20 files).
  2. Pick a compression level: Standard, Strong, or Maximum.
  3. Optionally limit the longest edge — this is the biggest lever for photos.
  4. Click “Compress”, then download individual files or all of them at once.

Details

How it works

Your browser decodes the image with createImageBitmap, draws it to a canvas, and re-encodes it. On top of that, two WebAssembly codecs do the heavy lifting: oxipng re-optimises PNG files losslessly, and MozJPEG produces smaller JPEG files than the browser's built-in encoder. The codecs are downloaded only when you compress, and both run entirely on your device.

Why PNG compression is limited

PNG has no lossy mode. Re-encoding it can only reshuffle how the same pixels are stored, so gains depend entirely on how well the source was compressed. A PNG exported straight from a screenshot tool or an old editor often shrinks a lot; one that already passed through an optimiser barely changes. If you need a dramatic reduction, switch the format — WebP at quality 80 is typically 40–70% smaller than the same PNG and looks identical.

The biggest lever: dimensions

For photos, limiting the long edge beats any encoder setting. Halving the width and height quarters the pixel count, so a 4000×3000 photo saved at 1920×1080 is roughly a quarter of the size. Use “Max long edge” when the image does not need its full resolution.

Limits and privacy

Up to 20 files per batch, 100 MB per file, and 50 megapixels per image. EXIF is dropped, animation is not supported. No uploads, no telemetry, no storage — everything stays in your browser's memory and disappears when you close the page.

FAQ

Are my images uploaded anywhere?

No. Decoding and encoding run entirely in your browser, including the WebAssembly codecs. No image data is sent to any server.

Why did my PNG barely get smaller?

PNG is a lossless format. Our compressor re-optimises it with oxipng, which typically removes 10–40% from images that were never optimised — but files that already went through ImageOptim, oxipng, or a modern exporter have little left to squeeze. For a much smaller file, convert the image to WebP, which usually cuts 40–70% with no visible difference.

What do the three levels actually change?

Standard is the fastest: light optimisation, and JPG uses your browser's built-in encoder. Strong adds MozJPEG for JPG and a deeper oxipng search for PNG. Maximum runs the deepest search at a lower quality — it is noticeably slower on large images.

Is EXIF data preserved?

No. EXIF metadata, color profiles, and orientation flags are dropped, which itself saves a few kilobytes.

Can I compress animated images?

No. Animated GIF, APNG, and animated WebP are not supported — only the first frame would survive, so the file is rejected. HEIC and SVG are not supported either.