What just happened
You gave the page two numbers and it wrote a file with that many pixels in it. In between, four things happened in this tab: the file was decoded, its orientation tag was settled so a phone photo does not arrive on its side, the pixels were resampled to your target, and the result was handed to a JPG, PNG or WebP encoder. The download link points at memory in this browser. Nothing was sent anywhere, because there is nowhere for it to be sent.
The chain between the two fields is on when the page loads. With it on, you type one number and the other one follows from the shape of your picture — it is printed in a lighter weight so it is always obvious which number is yours. Turn the chain off and both fields are yours, which is the moment the fit, cover and stretch buttons start to matter.
Rounding is to whole pixels, half up, because a file cannot have 449.6 rows. When that rounding pushes the result more than half a percent off the shape you started with, the page prints the ratio you actually have underneath the fields. A 1999 × 1125 original is not 16:9, and 1920 × 1080 taken from it is not the same shape as its source. You should hear that from this page, not from an editor three steps later.
Fit, cover, stretch
These three are the whole reason a resize can surprise you, and almost nobody knows which one they want until they see what each does to their own photograph. Take a 3:2 photo and ask all three for 800 × 600.
| Mode | What you get | What it costs |
|---|---|---|
| Fit | 800 × 533 | Nothing is cut and nothing is added. The height is not the number you typed. |
| Cover | 800 × 600 | You get the box exactly. A strip of the picture is discarded to do it. |
| Stretch | 800 × 600 | You get the box exactly. Everyone in the picture is 12% wider than they were. |
Cover decides what to discard with the nine-point grid next to the buttons. Centre is the default because it is right most of the time; top-centre is one tap away because it is right for anything with a face in it. That is arithmetic, not a crop tool — there is no handle to drag and no rectangle to nudge, and if you need to choose the rectangle yourself this is the wrong page. The longer version, on one photograph, is in the guide.
The three buttons switch off while the chain is on. Under a locked ratio all three produce identical pixels, and a control that is live but changes nothing is a lie told by a user interface.
Files this page opens
JPG, PNG, WebP, AVIF, GIF, BMP, TIFF and ICO are read by the browser itself. HEIC — what a recent iPhone shoots unless it was told otherwise — needs a decoder no browser ships, so this page carries one and loads it the first time a HEIC arrives and at no other moment. That costs a one-off download of about a megabyte and a half before the picture opens; every later HEIC in the same tab skips it. Files up to 120 MB are accepted. Past about 32 megapixels the page offers you a lighter working copy rather than risking the tab, and that offer is a question with two equal answers, not an error.
Where it stops is worth saying plainly, because a tool that quietly does the wrong thing costs more than one that refuses:
- An animated GIF or WebP is declined. Only the first frame could be handled here, and handing back a still under the same file name would be a worse answer than saying no.
- The working space is 8-bit sRGB. A photograph in a wider colour space comes back flattened into sRGB, which most people will never see and a colourist will.
- A four-ink print JPG is spotted from its Adobe marker and the page says so, but the browser has already converted it on the way in and the colours have already moved.
- Above roughly 16,000 pixels on one edge the allocation fails on most machines, so the fields stop there instead of producing an empty file.
- Transparency and JPG cannot both happen. Choose JPG with a see-through picture open and the warning arrives before you press the button, not after.
Making a picture smaller throws pixels away. We choose the order of operations that throws away the least, and there is no setting on this page that gets them back — a 4000 px photo resized to 800 and then back to 4000 is not the photo you started with.
What each format costs on the way out
The dropdown beside the download button has four entries and they are not interchangeable. On a photograph the choice you make there usually moves the file size more than the two numbers you typed do, and one of the four can quietly destroy something the resampler was careful to keep.
| Save as | What it keeps | What it costs |
|---|---|---|
| Same as I opened | The container you arrived with, so a PNG leaves as a PNG. | Nothing is decided on your behalf, which also means nothing is improved on your behalf. |
| JPG | Photographs, at whatever the quality slider says. | No transparency at all, and a fresh generation of encoder loss every time you save. |
| PNG | Every resampled pixel exactly as computed, see-through areas included. | Several times the bytes of a JPG once the subject is a photograph rather than a diagram. |
| WebP | Both of the above, usually at around half what the JPG weighed. | A short list of older programs still will not open one, and a few browsers cannot write one. |
Whichever you pick, the size printed under the button is the encoded length of the blob this page is holding — it has already been written, so that figure is a measurement and not a projection. Move the quality slider and watch it settle. That is the only honest way to find the point where a smaller file stops being worth it.
Questions we get asked
- Why is the second number greyed out?
- Because the chain is on and that number is being worked out from the one you typed. It is greyed rather than disabled: type in it and the chain hands the derivation over to the other field. Press L to turn the chain off entirely.
- I asked for 800 × 600 and got 800 × 533.
- That is fit doing exactly what it says. Your photograph is 3:2 and the box is 4:3, so fitting it inside the box uses all 800 columns and only 533 of the 600 rows. Cover will give you 800 × 600 by discarding a strip; stretch will give you 800 × 600 by squashing everyone.
- Which filter is running, and why can I not pick it?
- Downscaling runs as repeated halvings — a box average, discarding half the pixels per axis per step — until the picture is within twice the target, then a single Lanczos3 pass lands it exactly. A big picture resampled in one jump aliases on hair, brickwork and small text; the stepped version does not. Going up uses Mitchell. There is no menu because picking between them is a print-production decision and this page is not a print-production tool. The reasoning is set out in full here.
- Will this get my file under a size limit in kilobytes?
- Usually fewer pixels means fewer kilobytes, but the two are not the same measurement and they do not move together reliably. What actually controls the kilobytes is the encoder and its quality setting. Drop the quality slider and watch the number beside the button — that number is the real encoded size of the file you are about to save, measured rather than estimated. If a form has given you a hard limit in KB, that is a different job from this one.
- My requirement is in centimetres, not pixels.
- Then it is not really a requirement in pixels at all, and this page will not answer it honestly on its own. Pixels and print size explains why, and points at the right tool.
- What if I have two hundred files, not two?
- No. This page takes one file and gives you one file, and it says so rather than accepting a folder and getting slower. A rule set applied to two hundred photographs is a pipeline, which is a different shape of tool entirely.
- Does the picture leave my machine?
- No. The file is read by the browser, the pixels are resampled in a worker thread in this tab, and the result is written straight to your downloads folder. There is no upload step to skip because there is no server to upload to — this site is a set of static files and has no code running anywhere else.
After you have resized
Four sizes get typed often enough to have their own page here, already loaded, with the notes that belong to each: 1920 × 1080, 1280 × 720, 1080 × 1080 and 800 × 600. There is no page for every plausible pair of numbers, and there is not going to be one.
If something about the result surprised you, one of these three is probably the reason: fit, cover and stretch on one photograph; what a downscale actually discards; or pixels and print size, which is the one to read if a form asked you for centimetres. All three sit together here, with a line each on what they are for.
And if none of them is the reason, it is worth knowing what this page declines to do before assuming it did it badly. It will not apply your settings to a folder, invent detail a small picture never had, do the centimetre arithmetic for you, open a crop handle, pad the frame out with bars, or aim at a target measured in kilobytes. Each of those refusals is written out with its reason on the about page, and each one is really a different shape of tool wearing a feature request as a disguise.



