🖼️ Image Resizer
Resize any image to exact pixel dimensions or a percentage of the original. Everything runs locally in your browser — the image is never uploaded anywhere.
How the new size is worked out
The picture is decoded and redrawn at the target size on a canvas in this page; it is never uploaded. With the aspect lock ticked, typing into one box fills the other from the original ratio:
ratio = original width / original height
height = round(width / ratio) width = round(height × ratio)
A 4000×3000 photo has a ratio of 1.3333, so a width of 1200 gives a height of 900. In percentage mode only the first box is read and the figure is applied to both dimensions - 25% of that photo is 1000×750, whatever the height box says.
Scaling quality
- The resample is bilinear, the browser's default canvas smoothing - it averages a small neighbourhood, it does not do a proper area-weighted reduction.
- Halve twice rather than shrink once. Dropping 4000 px straight to 400 in one pass skips most source pixels and makes fine detail shimmer; 4000 to 1000 to 400 comes out visibly cleaner.
- Enlarging invents nothing. Interpolating a 400 px image up to 1600 gives you a soft 1600 px image, not extra detail.
Frequently asked questions
How do I resize an image without losing quality?
Shrinking is safe here: pixels are averaged down and written to a lossless PNG, with no re-compression. Growing an image cannot restore detail that was never captured, so keep upscaling modest.
Why does the height box do nothing in percentage mode?
Percentage mode reads the first field only and scales width and height by that one number, which keeps the proportions intact. Switch to Pixels if you need to set the two dimensions independently.
How do I resize an image to a specific file size?
Dimensions are all this tool controls. Resize to the pixel size you need here, then use the Image Compressor and lower its quality slider until the reported file size is under your limit.