ResizePicture

Resize picture online

Every photo, the perfect size.

Make a picture fit Instagram, a passport form or an upload limit. Pick a size, then download.

or drop it anywhere here · paste works too

FreeNo sign-upResized here, on your own machine.

One photograph of a seaside town printed at three sizes — small, medium and large — laid side by side on a wooden desk.
The same picture at three sizes; the middle one is being resized to 1080 by 1080.
Choose photoor drop it here · paste works too · several at once is fine

No file to hand?

No picture open Resized here, in this tab

Drag the box's edges or corner on the canvas, or type the numbers. Keys: L chain · Ctrl Z undo · C compare · hold Space for the original · 0 fit · 1 100% · Ctrl K find a size. How the resampling works.

How it works

Three taps, and it's the right size

  1. Step 1

    Choose a photo

    Tap the button, drop a file or paste one. JPG, PNG, WebP and iPhone HEIC all open.

  2. Step 2

    Pick the size

    Type the width, or pick Instagram, passport, KB or print. You see the result straight away.

  3. Step 3

    Download

    Save the new file. The exact size and file weight are shown before you press the button.

All tools

What are you resizing for?

Each one opens with the right size already set. Change anything you like.

Questions

Good to know

Why is the second number greyed out?

Because the chain is on and that number is being worked out from the one you typed. Press L to turn the chain off entirely.

I asked for 800 × 600 and got 800 × 533.

That is fit doing what it says. A 3:2 photograph inside a 4:3 box uses all 800 columns and only 533 of the 600 rows. Fill gives the box exactly by discarding a strip; Pad gives it exactly by adding a margin; Stretch gives it exactly by squashing.

Which filter is running, and can I pick it?

Auto runs repeated box halvings until the picture is within twice the target, then one Lanczos3 pass; going up it uses Mitchell. Smooth and Sharp are the two alternatives — softer with no ringing, or crisper for text and line art — and the receipt names the chain that actually ran.

Does the picture leave my machine?

No. The file is read by the browser, resampled in a worker thread in this tab, and written straight to your downloads folder. There is no server behind this site to upload anything to.

For the curious

The short version

A resize is a contract with four terms: the size you started with, the size you asked for, the size you got, and the arithmetic in between. This page prints all four above the save button, before the file is written and again after it — the second time by decoding the file it just handed you rather than by repeating what it intended.

By default, downscaling runs as repeated halvings until the picture is within twice your target, then one Lanczos3 pass lands it exactly; going up uses Mitchell. Smooth and Sharp are there for skin and sky, or for text and line art, and whichever runs is named in the receipt. The long version, with the table nobody else prints, is below.

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 Fit, Fill, Pad and Stretch 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, fill, pad, stretch

These four 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 — which is why each is drawn from your own picture beside its button. Take a 3:2 photo and ask all four for 800 × 600.

ModeWhat you getWhat it costs
Fit800 × 533Nothing is cut and nothing is added. The height is not the number you typed.
Fill (cover)800 × 600You get the box exactly. A strip of the picture is discarded to do it — the canvas shows it ghosted.
Pad800 × 600You get the box exactly and all of the picture. A 33-pixel margin goes on top and bottom.
Stretch800 × 600You get the box exactly. Everyone in the picture is 12% wider than they were.

Fill decides what to discard with the nine-point grid, or by dragging the picture inside the frame on the canvas; Pad uses the same grid to decide where the margin goes. 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. The box keeps its shape either way — this is positioning, not a free-form crop. The longer version, on one photograph, is in the guide.

The four modes step aside while the chain is on. Under a locked ratio all four 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, GIF, BMP and ICO are read by the browser itself. TIFF is opened by Safari natively and, everywhere else, by this page's own TIFF reader — uncompressed, LZW, PackBits or Deflate; grey, palette or RGB, 8 or 16 bits — which says by name what it cannot read (JPEG-in-TIFF, CMYK). An SVG has no pixels of its own, so it is drawn from its vectors at 2048 to 4096 pixels on the long edge and resized from that, with a note saying so; it is loaded as an image, so no script inside it runs. AVIF is recognised on the way in, but the decode is the browser's and not every browser has one — where yours does not, the file is declined by name rather than opened into something wrong. 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 by the resizer: it handles one frame, and handing back a still under the same file name would be a worse answer than saying no. Animated GIFs have their own page, which resizes every frame and keeps the timing.
  • 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 format control in the Export panel has four main entries, plus AVIF where your browser can write it, 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 asWhat it keepsWhat it costs
Same as I openedThe 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.
JPGPhotographs, at whatever the quality slider says.No transparency at all, and a fresh generation of encoder loss every time you save.
PNGEvery 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.
WebPBoth 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.
PNG · fewer coloursEvery pixel, on a palette of 256 colours or fewer — often a fraction of a full PNG for logos and screenshots.Lossy: gradients and photos can band. Offered as chips under PNG, and said so beside them.
AVIFSmaller than WebP at the same look, written by the browser's own encoder.Only shown as available where this browser can actually write it — checked by encoding a test picture. Many cannot yet.

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 can I change it?

Auto, the default, runs 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. Going up it uses Mitchell. Smooth swaps the last step for Mitchell going down and bilinear going up, so nothing rings; Sharp skips the halvings and runs one area-weighted Lanczos3 pass either way, which keeps text and line art crisper at the cost of slight ringing. The chain that actually ran is printed in the receipt. 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. The number beside the button 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, pick it under File size: the page searches the quality for the best file under that many kilobytes, keeps the pixel size unless you allow it to change, and prints the exact bytes. Resize image in KB opens with that switched on.

My requirement is in centimetres, not pixels.

Choose cm under Size by, type the width and height in centimetres, millimetres or inches, and pick the DPI the form gives. The page prints the arithmetic — 3.5 × 4.5 cm at 300 DPI = 413 × 531 px — and resizes to those pixels. Writing the DPI into the file is a separate switch, and change DPI rewrites only that tag on a file you already have. Resize image in cm opens that way, and pixels and print size explains what DPI does and does not change.

What if I have two hundred files, not two?

Drop them all at once, or open the Batch panel. One rule — long edge, box, percent or megapixels — applies to every file, a pixel box can turn itself for portrait pictures, and the results come back as one ZIP built in this tab. Bulk resize opens straight onto it.

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 invent detail a small picture never had, crop anything unless you open crop and resize, or write a DPI value into the file unless you ask. Those limits are set out with their reasons on the about page.