Compress Images Without Uploading Them

Batch-compress images locally, 40 per batch free, with codec choice and a live SSIM preview.

Dropping a photo here does not just run it through a single fixed setting. The tool decodes the file, samples whether it carries transparency, and hands you a codec choice — MozJPEG, OxiPNG, WebP, or AVIF — each with its own quality mechanics, plus a live before/after split view backed by a real structural-similarity score rather than a guess at how much detail survived.

How to compress images

  1. Drop your images onto the upload zone or click it to browse; each file is decoded in a background worker and checked for transparency.
  2. Keep the recommended codec (lossless OxiPNG for images with transparency, MozJPEG at quality 75 for everything else) or pick JPEG, PNG, WebP or AVIF yourself and move the quality slider.
  3. Select a queued image to watch its real encoded size and SSIM score update in the before/after split view, then press Apply compression if you tuned that one by hand.
  4. Press Compress all to encode the whole queue with each image's own settings, then press Download ZIP to save every finished file in one archive.

Four codecs, not one slider

Every encode runs through jSquash's WebAssembly builds of the actual reference codecs, not a JavaScript reimplementation: MozJPEG for lossy JPEG output, OxiPNG for lossless PNG re-optimization, and Google's own WebP and AVIF encoders. MozJPEG only ever takes a 1-100 quality number — there is no lossless mode, because baseline JPEG is inherently lossy. OxiPNG runs the opposite way: always lossless, with its only lever a 1-6 optimization level trading encode time for a smaller byte count on the same pixels.

WebP and AVIF sit in between, each exposing a lossless toggle that, when on, makes the quality slider moot. Off, both take the same 1-100 quality scale MozJPEG uses, but AVIF's AV1 encoder generally reaches a given visual quality at a smaller file size than the other three, at the cost of encoding slower.

Compression formats, limits and what's free

What the recommended preset actually decides

The one-click recommended button checks whether the decoded image has non-opaque pixels — sampled on a stride rather than every pixel, since a 20-megapixel photo doesn't need per-pixel scanning for a yes/no answer — and picks accordingly: transparency defaults to lossless OxiPNG at level 3, since a lossy codec would visibly damage the alpha channel; everything else defaults to MozJPEG at quality 75. Switching format afterward keeps whatever quality and level you had, snapped into the new codec's supported range.

Reading the SSIM number and the size estimate

Every settings change re-runs a full encode of your actual image in a background worker and reports the real resulting byte size, never an extrapolated guess. Alongside it sits an SSIM score computed with an 8x8 sliding window over grayscale luminance, the same formula used in image-quality research, expressed 0-1 where 1 means pixel-identical structure. A file that shrank 80% but scored 0.98 tells a different story than one that scored 0.85.

The comparison runs against a preview downscaled to 360 pixels on the long edge, fast enough to recompute on every slider drag, at the cost of not reflecting fine detail loss visible only at full size.

Where the compression work actually happens

Decoding and encoding run in a pool of Web Workers sized to your device's core count and capped at eight, so a batch processes several images at once instead of freezing the main thread. Each worker holds one job at a time, since jSquash's WASM codecs aren't documented safe for concurrent calls within one instance. Nothing leaves the browser — every byte in and out stays local to the page.

Why compress images for a website

Images are usually the heaviest part of a web page, so trimming them is one of the quickest ways to make pages load faster and to improve Core Web Vitals such as Largest Contentful Paint. Smaller files also keep email attachments under provider limits and save storage in content systems that bill by the gigabyte.

For the web, WebP and AVIF are the modern choices: both support transparency and generally beat JPEG and PNG on size at similar visual quality. Keep a JPEG or PNG copy when the destination is an older app, an email client or a print shop that may not accept the newer formats.

When this is the wrong tool

Questions people ask about Image Compressor

Why does the compressor pick PNG for some images and JPEG for others?
It checks the decoded image for transparency. Any image with non-opaque pixels defaults to lossless OxiPNG, because a lossy codec would degrade or flatten the alpha channel. Fully opaque images default to MozJPEG at quality 75, since JPEG's compression suits photographic gradients better.
Is AVIF always better than WebP?
Not universally — AVIF's AV1-based encoder tends to produce smaller files at equivalent visual quality and supports the same lossless/lossy split WebP does, but it encodes slower and has narrower compatibility with older tools and some email or CMS pipelines. Check where the file needs to work first.
What does the SSIM percentage actually measure?
It is a structural similarity score computed with the standard windowed formula over grayscale luminance, comparing your original image to the live-compressed preview. It reflects local pattern and contrast fidelity, not raw pixel-difference, and is calculated against a downscaled 360px preview for speed.
Does compressing a batch of images upload them anywhere?
No. Every file is read from your device, decoded and re-encoded inside Web Workers running in your browser tab, and never transmitted over the network. Verify this by watching your browser's network panel while compressing, or by disconnecting entirely.
Can OxiPNG make a PNG smaller without changing any pixels?
Yes — OxiPNG is always lossless. Its 1-6 optimization level controls how aggressively it searches for a smaller compressed representation of the exact same pixel data, not how much detail is kept. A higher level takes longer to encode but never changes what the image looks like.
Does compressing an image reduce its quality?
Lossy settings (MozJPEG, or WebP and AVIF with lossless off) discard some detail, and the SSIM score shows how much structure survived. OxiPNG and the lossless WebP and AVIF modes keep every pixel identical and only shrink how the data is stored.
What image formats can I compress?
You can drop JPEG, PNG, WebP, AVIF, GIF or BMP files, or any other image type your browser can decode. The compressed result is written as JPEG, PNG, WebP or AVIF, whichever codec you choose for that image.
Is there a file-size or image-count limit?
There is no file-size cap at all, only your device's memory. The free tier holds up to 40 images in the queue per round, with no limit on how many rounds you run, and Pro removes the 40-image ceiling.
Can I compress a HEIC photo from an iPhone?
Only if your browser can decode HEIC itself, because the tool bundles no HEIC decoder of its own and relies on the browser's built-in image support. In a browser that cannot read HEIC the photo will not load, so export it as JPEG from the phone first or switch the iPhone camera format to Most Compatible.
Can I compress an image to an exact size like 100 KB?
There is no target-size mode. Watch the estimated output size while lowering the quality slider until it drops under your limit, and if quality suffers too much, reduce the pixel dimensions with the Image Resizer first and compress the smaller file.

Related tools on BrakeTools

Content reviewed 2026-09-27.