Image Resizer

Drop in photos and get them back at exactly the size you need — by pixels, by percentage, or fitted into a preset box. Everything runs in this tab, so your images never leave your device.

🔒 Your data never leaves your device🆓 Free🙅 No sign-up

JPEG, PNG, WebP, HEIC, GIF or BMP — add as many as you like. Files stay on your device.

🔒 Nothing is uploaded. Every image is decoded and redrawn by your own browser.

📐 Resize mode

Leave one field blank to let it follow the aspect ratio.

⚙️ Output

Applies to JPEG and WebP. PNG is always lossless, so the slider is ignored for it.

Add an image above and the new dimensions will appear here.

How to use the image resizer

  1. Drag your photos onto the drop zone or click Choose files. JPEG, PNG, WebP, HEIC, GIF and BMP all work, and you can add as many as you like.
  2. Pick a resize mode. Pixels lets you type an exact width and height, Percentage scales everything by the same factor, and Preset drops the image into a ready-made box such as an Instagram square or a YouTube thumbnail.
  3. If a full box is involved, choose a fit mode — fit inside, fit with letterbox bars, or crop to fill.
  4. Set the output format, the quality slider for JPEG and WebP, and a background colour if you are flattening transparency or padding with bars.
  5. Press Resize, check the before and after figures on each row, then download files individually or with Download all.

Each row shows the original dimensions, the new dimensions, the scale as a percentage, and the file size before and after, so you can tell at a glance whether the settings did what you wanted.

How the resize maths works

Every mode ends up producing the same three things: an output canvas, a rectangle to read from the source image, and a rectangle to draw into. The difference is only how those are worked out.

Percentage is the simplest. The scale factor is applied to both axes and the result is rounded to whole pixels:

newWidth  = round(sourceWidth  x percent / 100)
newHeight = round(sourceHeight x percent / 100)

Pixels with the aspect ratio locked derives the missing axis from the original ratio. Leave the height blank and enter 1600 for the width, and the height follows as round(1600 x sourceHeight / sourceWidth). Fill in both fields and the image is fitted into that box rather than stretched. Unlock the ratio and both numbers are taken literally, which distorts the picture — occasionally useful, rarely what you want.

Presets and boxes use one of three strategies:

Fit mode Output size What happens to the picture
Fit inside Whatever fits the box Whole image kept, no padding, output may be smaller than the box on one side
Fit + letterbox Exactly the box Whole image kept, centred, gaps filled with the background colour
Crop to fill Exactly the box Box filled edge to edge, the overflow is trimmed from both sides equally

Fit and letterbox use scale = min(boxWidth / imageWidth, boxHeight / imageHeight). Crop uses max of the same two ratios, which guarantees both axes reach the edge, and then takes a centred slice of the source.

The never enlarge option clamps every one of those scale factors to a maximum of 1. With it on, a 640 pixel wide image asked to become 1920 wide simply stays 640. Upscaling adds pixels but no information: the browser interpolates between neighbours, which softens edges and can introduce a plasticky look. If you genuinely need a bigger file, turn the option off and accept the softness — or go back to the original capture.

Worked examples

A phone photo for an Instagram square. A 4032 x 3024 JPEG with the Instagram square preset and crop-to-fill: the cover scale is 1080 / 3024 = 0.357, so the tool takes a centred 3024 x 3024 slice of the source — starting at x = 504 — and draws it into a 1080 x 1080 canvas. Nothing is squashed, and 1008 pixels of width are trimmed, 504 from each side.

The same photo as a YouTube thumbnail, portrait source. A 3024 x 4032 portrait shot fitted into the 1280 x 720 box scales by 720 / 4032 = 0.1786, giving 540 x 720 — narrower than the box, because a tall picture cannot fill a wide frame. Switch to letterbox and the canvas becomes the full 1280 x 720 with the 540 pixel wide image centred at x = 370 and your background colour down both sides.

A web upload limit. A 4000 x 3000 image resized to 1600 pixels wide keeps its 4:3 ratio and becomes 1600 x 1200. That is 1.92 million pixels instead of 12 million — 16% of the original data before compression even starts. At quality 85 the file typically drops from around 4 MB to roughly 350 KB.

A percentage pass. A 1001 x 667 scan at 33% becomes 330 x 220. Odd numbers are rounded rather than truncated, so the aspect ratio stays as close to the original as whole pixels allow.

Tips and common mistakes

  • Resize before you fuss over quality. Halving the dimensions saves far more bytes than dropping JPEG quality from 85 to 60, and it costs much less visible detail.
  • Crop deliberately. Crop-to-fill always trims from the centre outwards. If your subject is off to one side, crop the image in an editor first, then resize here.
  • Do not upscale to meet a minimum. If a platform wants 1080 pixels and your source is 800, the result will look soft no matter which tool does it. Re-export from the original if you can.
  • Watch the format when transparency matters. PNG and WebP keep the alpha channel; JPEG does not, and will paint your background colour behind every transparent pixel.
  • Use the same settings across a batch. Mixed portrait and landscape sources in a fixed box behave very differently — check a couple of rows before downloading everything.
  • Very large files need patience. Anything over roughly 40 MB is decoded entirely in this tab’s memory, which can be slow on a phone.

Privacy

Your images are never uploaded. Each file is read with the browser’s File API, decoded into an offscreen canvas, redrawn at the new size and re-encoded — all on your own machine. There is no server component and no temporary storage. HEIC decoding happens locally too, using a WebAssembly decoder loaded only when a HEIC file is actually added. When you close or reload the page every file, thumbnail and preview URL is discarded, and the tool keeps working even if you go offline after the page has loaded.

Frequently asked questions

Will resizing make my image blurry?

Scaling down is safe and usually looks sharper than the original at its new size, because the browser averages several source pixels into each output pixel. Scaling up cannot invent detail, so an enlarged image always looks soft. That is why the "never enlarge" option is on by default.

What is the difference between fit, letterbox and crop?

Fit scales the whole picture until it sits inside the target box, so the output may be smaller than the box on one axis. Letterbox does the same but pads the output to the exact box with your background colour. Crop fills the box completely and trims whatever hangs over the edges.

Does resizing also reduce the file size?

Almost always, and dramatically. File size scales roughly with pixel count, so halving both sides removes about three quarters of the pixels. A 4 MB phone photo cut to 1920 pixels wide typically lands between 300 and 600 KB.

Can I resize HEIC photos from my iPhone?

Yes. HEIC and HEIF files are decoded in the browser first and then written out as JPEG, PNG or WebP at the size you chose. The original file on your device is untouched.

Why did my transparent PNG come out with a white background?

Because you exported it as JPEG, and JPEG has no alpha channel. Transparent pixels get filled with the background colour you picked. Choose PNG or WebP as the output format to keep transparency.

Are my photos uploaded to a server?

No. Files are read with the browser's File API, decoded into a canvas and re-encoded locally. There is no upload, no queue and no temporary storage — closing the tab discards everything.

Related tools

Last reviewed: