Understanding batch image processing
The same operation, a hundred files.
What changes between editing one image and editing many, and the format choices that matter when you're committing to the same decision a hundred times.
The throughput problem.
Single-image editing is interactive — slider moves, preview updates, save. Batch editing trades interactivity for throughput: pick the settings once, apply to N files, walk away while it runs. The decisions get made up front (output format, dimensions, quality, naming pattern); the loop just executes them. The user- experience challenge is making those up-front decisions easy to get right because there's no per-file feedback loop.
Resize strategies.
Three common modes. Fit-within — scale so the longest side is at most N, preserving aspect ratio (the safe default for web thumbnails). Fit-exact — distort to fit, rarely correct. Crop-to-fit — scale and crop so the output is exactly a target size (right for square avatars from rectangular photos). Each mode has a different "what gets lost" answer; the batch tool's UI should show preview thumbnails so users see before committing.
Format conversion as part of the batch.
Common batch operations include "convert all to WebP" or "convert all to JPEG at 85 % quality". WebP is ~25-35 % smaller than JPEG for equivalent visual quality, and supports both lossless (PNG-like) and lossy (JPEG-like) modes. AVIF is newer and smaller again but slower to encode. PNG → WebP for screenshots, JPEG → WebP for photos, both for the web — that's the typical batch.
A worked batch.
A folder of 200 photos from a camera, each 6000×4000 at 8MB JPEG. Target: 1600 wide, WebP at 85 % quality, original filenames preserved with a -web suffix. The processor opens each file, scales down (1600×1067 maintaining 3:2), encodes as WebP, writes to the output folder. Total takes 30-60 seconds depending on CPU; the output folder is ~80 MB instead of 1.6 GB — a 20× reduction with negligible visible quality loss.
Batch resize + convert
200 × 6000×4000 JPEG → 200 × 1600×1067 WebP
Same operation per file; throughput is the constraint.
1.6 GB input → ~80 MB output
= Web-ready folder
Output naming patterns.
The single most-requested batch feature: keep the original filename but add a suffix, or strip a prefix, or number sequentially. IMG_0001.JPG becoming photo-1.webp matters more than it sounds — for image libraries you'll be referencing the names from a database or a Markdown file. Good tools expose a template: {name}-thumb.{ext}, {counter:04}.webp.
Why this stays in the browser.
Batch image processing in the browser uses the same Canvas API as single-image editing — but runs each operation in a loop. The output is zipped and downloaded as one file (or saved one-at-a-time to the user's downloads folder if the browser supports the File System Access API). 200 photos at 8MB each is 1.6 GB of input — uploading that to a cloud service is a real wait; processing locally takes about the same time the upload would have, but no bandwidth and no third party touches the photos.