gizmobench

Image Resizer

Drop in one picture or a queue of them, set an exact pixel size or a percentage, and download the results. The resizing runs on a canvas in this browser tab rather than on a server, so no file is uploaded, there is no account and there is no limit on how many bytes a file may hold; the one ceiling is the 25 megapixels a browser canvas can allocate. The aspect ratio is locked unless you unlock it, fit, fill and stretch each say plainly what they do to the shape, a photograph carrying an EXIF orientation tag is measured and drawn the right way up so it does not come back on its side, and an enlargement is labelled as an interpolation instead of being sold as an enhancement.

Previewnothing loaded

The picture appears here.

Queueno files

Add one picture or a hundred. Each keeps its own shape and is listed here with the size it comes out at.

    The whole picture inside the box you gave, with its shape kept.

    · or drop them anywhere on the stage

    Never uploadedNo accountResized in this tabUp to 25 megapixels
    Size by
    Width
    Height
    Aspect
    Fit

    With the aspect locked, the height follows the width from the shape of the picture on the stage, and the other pictures in the queue keep their own shapes. Fit: The whole picture inside the box you gave, with its shape kept. A side that works out fractional is rounded to the nearest whole pixel, and never to nothing. Saving several files at once may ask your browser for permission the first time.

    • 400 × 200 into a 100 × 100 boxFit keeps the whole picture
      100 × 50
    • The same, set to Fillfills the box and crops
      100 × 100, 200 px cropped off the width
    • Photo rotated by the cameraEXIF orientation 6
      turned 90° upright before resizing
    Exact on the numbers, honest about the pixels. The output dimensions are exactly what you ask for, and the aspect ratio is kept unless you unlock it. Enlarging cannot add detail that was never in the picture, so an upscale is an interpolation and is shown as one. Your pictures are decoded and redrawn in this tab, never uploaded, and the only thing kept between visits is the size and mode you last used.

    Common questions

    How do I resize an image to an exact pixel size?
    Add the picture, leave Size by on Pixels, and type the width and the height you need. With Aspect on Locked, typing one side moves the other to match the shape of the picture on the stage, so the box you have typed is the box the picture actually fills. Fill and Stretch both hand back exactly the numbers you typed. Fit hands back the largest picture that will sit inside them, which for a 400 by 200 picture in a 100 by 100 box is 100 by 50, because the whole picture is kept rather than cropped. The preview names both sizes at the top of its pane, in the form 4000 × 3000 to 1200 × 900, and the size each queued file will come out at is printed against its own row before anything is encoded.
    What is the difference between fit, fill and stretch?
    Fit puts the whole picture inside the box you gave and leaves the box short on one side, so nothing is lost and nothing is distorted. Fill uses the box exactly and crops the overhang evenly off both sides: a 400 by 200 picture filling a 100 by 100 box keeps a 200 by 200 square from the middle, so 200 pixels of width are cropped away. Stretch also uses the box exactly, but changes the shape to match it, which is the one mode that distorts the picture, and it is the reason the Aspect control exists. The line under the readout names the mode you are in and what it does to the shape whenever you are working in pixels, and the worked cases under the tool show the numbers for all three.
    Will making an image bigger make it clearer?
    No, and the tool says so instead of implying otherwise. Asking for an output larger than the source is an upscale, and the status line under the queue says so: an upscale of a stated factor, whose new pixels are interpolated from the ones already there, so no detail is added. The extra pixels are worked out from their neighbours; the detail a camera never captured cannot be recovered by any amount of arithmetic. Reducing a picture is the other way round, and the same line says what proportion of the original the output is.
    Why did my phone photo come out sideways elsewhere but not here?
    Because a phone usually stores the picture the way the sensor read it and adds an EXIF orientation tag saying which way up it should be shown. A tool that ignores the tag resizes the raw frame, so a portrait comes back on its side, and a tool that applies the tag after the browser has already applied it turns the picture twice. This one reads the tag out of the file's own bytes, reads the frame size the file states, and compares that with the size the decoder handed back: a quarter turn swaps a picture's width and height, so it can tell whether the decoder did the job already, and it turns the picture only when the decoder did not. The width and height you type are then measured against the upright picture, which is why a portrait photograph in a 1512 pixel box comes out portrait.
    Is my picture uploaded anywhere?
    No. There is no server in this. Each file is read in the page, decoded with the browser's own image decoder, drawn onto a canvas at the size you asked for, and encoded back out as the file you download. No image byte is sent to an endpoint, to analytics or to error reporting. The only thing written to your browser's storage is the setting row: whether you are working in pixels or percent, the width, the height, the percentage, the fit mode and the aspect lock. No picture is ever stored, and if storage is blocked the tool still works.
    Can I resize a batch of images at once?
    Yes. Drop in as many as you like: they queue up on the right, each row showing its name, its state and the size it will come out at, and Download all runs the lot. Every picture is measured against its own shape, so a portrait and a landscape in the same queue both keep their proportions rather than one of them being squashed to match the other. A file the browser cannot decode is named in the queue with the reason and skipped, and the rest still run. Saving several files in one go may make your browser ask once whether to allow it.
    Which file types can it read and save?
    It reads whatever your browser can decode, which today means JPEG, PNG, WebP, GIF and usually AVIF. It saves a JPEG as a JPEG, a PNG as a PNG and a WebP as a WebP, and anything else as a PNG, and the queue row prints the type the file was actually encoded as rather than the type that was asked for. An animated GIF gives you its first frame as a still, because a canvas holds one frame. There is no limit on how large a file may be in bytes, since nothing is uploaded; the one ceiling is 25 megapixels, applied to the picture that comes in and to the one that goes out, because that is what a browser canvas will reliably allocate. A picture past it is named and skipped rather than quietly returned blank, and an output size past it is refused with the number it came to.
    Can I resize by percentage instead of pixels?
    Yes. Switch Size by to Percent and type the figure: 50 halves both sides, 100 leaves the size alone, and anything above 100 is an upscale and is labelled as one. A percentage scales both sides by the same amount, so the shape is always kept and the fit mode makes no difference to the result. A side that works out fractional, which 33 per cent of a three pixel width does, is rounded to the nearest whole pixel and never down to nothing, because a picture with a side of zero is not a picture.

    The output dimensions are exactly what you ask for, and the aspect ratio is kept unless you unlock it. Enlarging cannot add detail that was never in the picture, so an upscale is an interpolation and is shown as one.