RescaleImageAll toolsResize a photo
One photograph printed at three sizes, 100, 62 and 44 percent, laid on a desk with a ruler under each
One photo, three sizes: the pixels decide how big it can go.

About this instrument

The position it takes

Image size is usually presented as a form with two boxes in it. That framing works when the answer is already known and fails the moment the question is physical — a print at a stated width, a scan at a stated density, a photograph reduced by half. In those cases the pixel count is not the input; it is the result of an arithmetic the interface has hidden.

This site puts the arithmetic on the surface. Pixels, print size and resolution are shown together, one of them is held while another is edited, and which one is held is a visible choice rather than an assumption. The kernel that computes the new pixels is named, selectable, and explained where the explanation belongs, next to the control.

What it does, and what it does not do yet

The factor is the primary input, and it is not the only one. A pixel target can be set as a box with a stated rule — fit inside it, fill it and crop the overflow, or stretch to it — or as a long or short edge, and each rule prints the factor it implies before anything is rendered. A print size in centimetres, millimetres or inches turns into pixels at a stated resolution, and the resolution tag can be rewritten without touching a pixel. A queue of files takes one rule for all of them and comes back as one archive.

The named targets sit on the same engine: form photos and signatures with their pixel size, kilobyte window and resolution checked on the saved file; passport and visa frames; paper and frame sizes that say whether only the tag needs to change; platform sizes padded without cropping; pixel art by whole-number nearest. A file length in kilobytes is reached by quality first and pixels second, and the panel says which moved. One job is not here yet and is not pretended: reconstructing detail in a small image with a model. When it arrives it will be labelled as what it is, and the arithmetic modes will not change underneath it. The measure of this tool is whether a printer’s preflight accepts what it produces, not how many operations it accumulated.

How it is built

A static site with no server behind it. The resampler is separable convolution over premultiplied alpha with an area-average prefilter, written in TypeScript and executed in a Web Worker so the panel keeps responding while a large file is filtered. The metadata writer operates on the original container bytes: JFIF and Exif segment editing for JPEG, pHYs insertion for PNG, with the compressed image payload copied through untouched.

Everything runs in the page. There is no upload endpoint, no account, no image storage and no queue, because the arithmetic is small enough to do where the file already is, and a round trip to a server would add latency, a privacy question and an outage mode in exchange for nothing.

Where it is likely to be wrong

Two open questions, recorded here rather than in a changelog nobody reads. The default kernel changes at the 100% line — Lanczos going down, bicubic going up — which is defensible and will read as an inconsistency to anyone comparing against a tool that always uses one. And the panel reports the print size it achieved rather than the one that was requested, so a round number typed in can come back with a decimal on it. Both are deliberate. Neither is obviously right.