Batch Image Processor

Resize, convert and compress many images at once in your browser: fit into a max width and height, JPEG, PNG or WebP with quality, ZIP of results and a size and speed report. No upload.

Your inputs and files stay in your browser

Images

Drop images here

JPEG · PNG · WebP · GIF · BMP · TIFF · ICO · TGA

80%

Applies to JPEG and WebP; PNG below 90 uses a 256-colour palette.

Images larger than the box are scaled down to fit, keeping the aspect ratio; smaller ones keep their size. Leave both empty to keep every size.

Only when the format and pixel size stay the same: a resize or a format change is always saved.

Files are re-encoded locally: EXIF, GPS and the source colour profile are removed, and EXIF rotation is applied to the pixels.

Report

Add images to see them here; after processing, each row shows the new size, change and time.

On this page

Batch Image Processor resizes, converts and compresses many images at once and reports how much space each one saved and how long it took. Everything runs in your browser on several workers in parallel; no image is uploaded.

Detailed Functionality

Drop a set of photos, screenshots or graphics: JPEG, PNG, WebP, GIF, BMP, TIFF, ICO or TGA. Pick an Output format — Keep each file's format, JPEG, PNG, WebP, GIF, BMP or TIFF — and a Quality from 1 to 100. Set Max width, px and Max height, px to shrink large images into a box such as 1920×1080: the aspect ratio is kept and smaller images are never enlarged. With Keep the original file when the result is not smaller an already optimized file is passed through untouched instead of growing.

Click Process images and the files are split between parallel workers (up to three, depending on the device). Each image is decoded once in Rust/WebAssembly, resized with Lanczos3 and encoded; WebP uses the browser's lossy encoder so the quality setting works. The report fills in row by row: size before and after, change in percent, pixel size, time per file and status. Totals show the images processed, bytes before and after, the overall change, wall-clock time and throughput in MB/s and megapixels per second.

Download files one by one, all at once as Download all (ZIP), or the table as Report (CSV) with raw bytes, pixels and milliseconds. Re-encoding drops EXIF, GPS and the source colour profile, and EXIF orientation is applied to the pixels so phone photos are not sideways. Cancel stops every worker and keeps the rows that already finished.

Practical Examples

Photos for a website: drop 40 camera JPEGs, choose WebP, quality 75 and max width 1920 — the report shows, for example, 182 MB → 9.6 MB (−95%), and Download all (ZIP) gives images.zip.

Screenshots to JPEG: choose JPEG at quality 85 with no size limit to turn a folder of PNG screenshots into much smaller files; transparent areas become white.

Thumbnails: set max width and max height to 400 to get a set of previews that fit a 400×400 box.

Check what is already optimized: keep each file's format and quality 80 with Keep the original file when the result is not smaller on; rows marked Original kept were already as small as they get.

How to Use This Tool

  1. Add images

    Drop images onto Drop images here or click Choose images; use Add images to add more. Each file appears in the report as Waiting.

  2. Choose settings

    Pick an Output format and Quality, and optionally Max width, px and Max height, px.

  3. Process

    Click Process images. Progress shows files done, bytes, speed and elapsed time; Cancel stops the batch.

  4. Review and download

    Check the totals and each row, then use Download all (ZIP), the download button of a row or Report (CSV).

Tips and Best Practices

  • For photos, WebP or JPEG at quality 70–85 together with a max width of 1600–2560 px usually saves the most.
  • PNG below quality 90 becomes a 256-colour palette: good for flat graphics, not for photos.
  • Speed depends on megapixels, not file size: a 2 MB 24-megapixel JPEG takes longer than a 5 MB screenshot.
  • Files with the same name get (2), (3) in the ZIP, so nothing is overwritten.
  • For one image with a before/after comparison use Image Compressor; for an exact width×height use Image Resizer.

Help shape what comes next

What should we improve next?

Choose one suggestion. These are ideas, not promised features.

Choose one option

The vote sends only the selected choice as an anonymous count. It contains no input, file data, URL, cookie or identifier and is not stored in this browser. Reloading the page allows another vote.