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
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.
Add images to see them here; after processing, each row shows the new size, change and time.
- Images
- Before
- After
- Change
- Time
- Speed
| File | Before | After | Change | Pixels | Time | Status | Download |
|---|
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
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.
Choose settings
Pick an Output format and Quality, and optionally Max width, px and Max height, px.
Process
Click Process images. Progress shows files done, bytes, speed and elapsed time; Cancel stops the batch.
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.