Batch Image Compressor

Compress JPG, PNG, WebP, and AVIF images locally in your browser. Adjust compression quality, set an optional maximum dimension, compare before/after, and export single files or a ZIP archive.

Drop JPG, PNG, WebP, or AVIF images to compress

Batch process multiple images locally · Compare before/after · Export single files or ZIP

Zero server upload · Files never leave your device

COMPRESSION SETTINGS

BATCH SUMMARY & DOWNLOAD

Add one or more images above or load the sample image to begin.

Method and assumptions

Images are decoded locally in browser memory via createImageBitmap with EXIF orientation applied, rendered onto a high-smoothing 2D canvas, and encoded using the browser's native JPEG, WebP, PNG, or AVIF encoder. For PNG outputs below 95% quality, channel posterization reduces unique color levels so DEFLATE compression achieves smaller file sizes. When 'Never output a file larger than the original' is checked and the output format and dimensions match the source, the engine falls back to lossless binary metadata stripping if re-encoding would increase byte size.

Common mistakes and edge cases

Already-optimized WebP or low-quality JPEG files may have little room for further lossy reduction without visible artifacts. Browser canvas dimensions are capped at 16.7 megapixels (4096×4096 equivalent area) to prevent mobile tab crashes. AVIF encoding requires a browser with native canvas AVIF encode support.

How to use

  1. Drop one or more JPG, PNG, WebP, or AVIF files into the workspace (or load the sample image).
  2. Adjust the compression quality slider, optional output format, and maximum dimension cap.
  3. Inspect the interactive before/after comparison slider and byte savings.
  4. Save individual compressed images or download the entire batch as a ZIP archive.

Example

A 1,200×800 JPEG camera photo compressed at 80% quality or converted to WebP typically reduces byte size by 35–75% while preserving visual clarity. Multiple files can be inspected with the interactive before/after slider and exported together in an uncompressed store-mode ZIP archive.

Frequently asked questions

Are my images uploaded to a server?
No. Decoding, canvas rendering, quantization, and ZIP packaging run 100% locally in your browser memory.
Why did an already-compressed image stay the same size?
When 'Never output a file larger than the original' is enabled and re-encoding would increase byte size, the engine strips non-essential metadata and preserves your original smaller bitstream.

RELATED TOOLS

FROM THE PORTFOLIO

Explore the RoninDesk portfolio.

This tool is provided for general informational and workflow purposes only. It does not constitute financial, investment, tax, or professional advice. All calculations run in your browser; no input data is transmitted or stored.