Bulk Image Resizer
Resize, convert and strip metadata from many images at once — download all as one ZIP.
Overview
The Bulk Image Resizer takes a folder's worth of photos and processes them with a single set of resize, convert, and metadata-strip rules — then ships everything back as one ZIP. Drop in a mix of JPEGs, PNGs and WebPs, choose a target dimension, an output format and whether to remove EXIF data, and the worker pipeline handles each file in turn.
This saves enormous time for photographers prepping web galleries, e-commerce teams normalising product shots, and bloggers running batch image resize and convert jobs before a CMS upload. It is the practical alternative to writing a one-off ImageMagick script every time client assets land in your inbox.
How it works
Each upload is decoded into a pixel buffer, scaled to the requested dimensions using a high-quality Lanczos filter, then re-encoded in the chosen format. PNG output uses libdeflate-style compression, JPEG uses a quality-controlled DCT pipeline, and WebP uses libwebp's lossy or lossless mode depending on the source. Aspect ratio is preserved with optional contain, cover or stretch fit modes.
If the strip-metadata option is on, every EXIF, IPTC, XMP and ICC profile chunk is dropped before re-encoding, often shaving 10-40 KB off each file. The processed images are streamed into a ZIP archive on the fly so memory usage stays flat regardless of how many files were uploaded.
Examples
Before: 30 product shots, 4000x6000 px, 8 MB each (245 MB total).
After: 30 JPEGs, 1200x1800 px, ~180 KB each in one 5.4 MB ZIP.
Before: 12 PNG screenshots, 2880x1800 px with sRGB ICC profile.
After: 12 WebP files, 1440x900 px, metadata stripped, 60% smaller.
Before: 100 portraits in mixed JPEG/HEIC sources at 12 MP.
After: Uniform 1080-px-wide JPEGs ready for a CMS upload limit.
FAQ
What's the maximum batch size?
The endpoint streams responses, so practical limits are bounded by request timeout and disk rather than memory. Batches of 100-200 images typically finish within the timeout window.
Will EXIF orientation be respected before stripping?
Yes — orientation flags are read first and the pixels are physically rotated to match before the metadata is discarded.
Can I keep filenames identical?
Output filenames preserve the input stem and append the new extension. A report.heic becomes report.webp if you convert to WebP.
Does it animate GIFs correctly?
Animated GIFs are resized frame-by-frame and re-assembled, preserving frame delays and the global palette.
Is colour profile conversion supported?
Untagged images are assumed to be sRGB. Tagged images are converted to sRGB during the resize step so previews look consistent across browsers.