Reducing in One Jump Skips Detail That Stepping Averages
Halve an image once and the browser averages neighboring pixels sensibly. Reduce it to a tenth in one operation and it samples too sparsely to see what it skipped, so a striped shirt turns into a moiré pattern, fine text breaks up, and a detailed texture becomes noise. Doing the same reduction in a few steps averages the whole way down and arrives somewhere visibly cleaner, for no extra effort on your part — it is simply what a good resizer does under the surface.
Use this without the search next time. Prathom Workbench puts Prathom's tools in your toolbar.
Add to Chrome — freeWhat it does
- One width, height, percentage, or fit box for the batch
- Multi-step downscaling for cleaner reductions
- Optional format change on the way out
- Runs in the browser, nothing uploaded
How to use Batch Resize Images
- 1
Decide the constraint, not the dimensions
For a mixed folder, a fit box or a maximum width is usually right, because a fixed width and height together will distort anything whose proportions differ.
- 2
Drop the folder in
Every file is resized independently to the same rule, and one failure does not stop the batch.
- 3
Check the largest reduction in the set
The file that shrank most is where stepping matters and where any artifact will show first.
How it works
This page runs the browser-side resizer set up for folder work. Each file is decoded on your device, drawn into a canvas at the requested size, and encoded back out. The results are collected into a zip.
Reductions are done in steps. Rather than drawing a 6000-pixel image straight into a 600-pixel canvas, it halves repeatedly until one more halving would overshoot, then makes the final adjustment. Each halving averages four pixels into one, so nothing is skipped on the way down.
A failure on one file does not abort the batch. Forty holiday photographs containing one file the browser cannot decode produce thirty-nine results and one clear message.
Aliasing, in one paragraph
The reason a single-step reduction misbehaves is the same reason a scanned magazine page produces moiré.
Reducing an image means sampling it on a coarser grid. Detail finer than that grid cannot be represented, and rather than politely disappearing, it folds down into a lower frequency — which appears as a pattern that was not in the original. A striped shirt is the classic case, because its stripes are regular and fine, and the false pattern that appears is large and obvious.
Averaging before sampling removes the detail that would have folded. That is what each halving step does, and it is why the stepped result looks correct where the single jump looks strange.
Choosing the constraint
For a batch, the constraint you pick matters more than the number.
A maximum width suits web publishing, where the layout column has a width and the height can be whatever the photograph is.
A fit box suits mixed orientations, because both portrait and landscape images end up with their longest side at the limit and neither is cropped.
A percentage suits a set that is already consistent and simply needs to be smaller.
A fixed width and height together suits only a set whose proportions already match. Applied to a mixed folder it either distorts or crops every file whose shape differs, and which of those it does is the difference between a bad batch and a very bad one.
Order of operations
Where resizing sits in a workflow decides how much quality survives it.
Edit first, at full resolution. Retouching, color, and cropping all have more information to work with before the reduction.
Resize second, to the size the destination actually needs.
Compress third, because compression quality is judged against the final pixel dimensions — a quality setting that looks fine at 6000 pixels is often wasteful at 1200.
Rename last, or at any point, since it does not touch the pixels at all.
Doing it in that order means every step operates on the best available input, and the only irreversible loss happens once.
What has been tested
The resizer this page uses is already in production, and it was exercised directly before this page went up.
Two files at once — a 2400×1600 JPEG and a 1200×1800 one — produced per-file results and a single zip. In width mode at 1200, the first came back 1200×800, 87 percent smaller, with its proportions intact. The second was left at 1200×1800 because "Never enlarge" is ticked by default and it was already at the target width, which is the correct behavior rather than a failure.
All six modes named in this page exist in the tool: width, height, fit inside box, fill box with a crop, percentage, and exact size with distortion.
Still to check on a later pass: a batch containing a finely striped subject inspected at full size for aliasing, and a batch large enough to stress the zip.
Examples
Camera folder for the web
The intended case. A large reduction is exactly where stepped downscaling earns its keep against a single jump.
Mixed orientations to one box
Fit rather than fixed dimensions. Both orientations end up with their longest side at the limit and nothing is cropped or stretched.
Frequently asked questions
Why does stepping produce a better result?
Because a large single-step reduction samples the source too sparsely, so detail finer than the sampling grid gets folded into false patterns rather than averaged away. Halving repeatedly averages at each stage, which is why the same target size arrives cleaner.
Does resizing lose quality?
Reducing loses detail by definition — there are fewer pixels to hold it. Enlarging cannot add detail, so the result is exactly as soft as the source, only bigger. Neither is a defect; they are what the operation is.
Should I resize before or after editing?
Edit at full size, resize last. Every editing operation has more information to work with at full resolution, and a resize applied first throws away detail the edit would have used. Sharpening in particular is judged against the final pixel dimensions, so applying it before a reduction leaves halos that the resize then makes worse.
Is anything uploaded?
Yes. Each image is sent to our server, resampled with libvips and returned; the upload is deleted as soon as the resize finishes and the result within 30 minutes. The reason for doing it here is quality — libvips applies a proper Lanczos filter, where a browser canvas does bilinear scaling that visibly softens any reduction of more than about half.
Further reading
- Upscaling Gave Back 91% of the File Size and None of the DetailAn upscaled image has the dimensions of the original and a file size close to it, which makes it look like the detail came back too. It did not. What the extra bytes are storing is the interpolation between pixels that were thrown away, and no amount of it is the same as having them.
- Six Ways to Shrink an Image, and What Each One CostsEvery image editor has a dropdown of resampling filters with names like Bicubic, Lanczos and Nearest Neighbor, and almost nobody changes it. The differences between them are real, they are measurable, and which one is right depends on what is in the picture rather than on which sounds most advanced.
- When a Form Demands Exactly 200 KBGovernment portals, job boards, and exam registrations all do the same thing: demand a photo under some precise number of kilobytes and reject everything else without explaining why. The reason guesswork fails is that the two controls you have do completely different things.