Skip to content
Server-sideDeleted in 30 minutes

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 — free

What 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. 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. 2

    Drop the folder in

    Every file is resized independently to the same rule, and one failure does not stop the batch.

  3. 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

photos/*.jpg - 24 Mp originals
resized-images.zip - fitted inside 2000 pixels

The intended case. A large reduction is exactly where stepped downscaling earns its keep against a single jump.

Mixed orientations to one box

mixed/*.jpg - portrait and landscape together
each fitted inside the same box, proportions intact

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.