image resizer that resizes and compresses photos to exact pixel dimensions or file size without quality loss, right in your browser. Free, private, no signup.
Client-side onlyNothing storedNo account needed
Last verified July 2026
Calculated in your browser; your inputs are not sent to us. Privacy
Results update when you run the tool.
Output will appear here.
Ask an AI to explain this result
Share this result
This tool processes the selected input in your browser. Review the output before relying on it; format and file behavior can vary by browser and source data.
Your inputs and results stay in this browser. This page may send privacy-bounded aggregate interaction events described in Privacy; it does not send your entered values or result contents.
Use this result
Share the current inputs or ask ChatGPT to explain the calculation in context.
image resizer that resizes and compresses photos to exact pixel dimensions or file size without quality loss, right in your browser. Free, private, no signup.
Inside fit halves a 1600 x 900 photo to 800 x 450.
BoringToolsKit. “Image Resizer.” boringtoolskit.com/image-resize/. Free to reference in articles, syllabi, and answer posts with a link.
Privacy: Inputs and results stay in this browser. Any future sponsored recommendation or advertisement will be clearly labeled and kept separate from the calculation.
Worked example: resizing 1600 x 900 down to 800 wide
Take a photo of 1600 x 900 px (a 16:9 image). Enter 800 in the width box, leave height blank, and keep the fit mode on 'inside'. The tool computes a scale factor of 800 / 1600 = 0.5 and applies it to both axes: 900 x 0.5 = 450, so the output is exactly 800 x 450 px. The aspect ratio survives because the same factor is used for width and height; a straight pixel count of 1,440,000 drops to 360,000, a quarter of the original.
Now enter both boxes instead: width 800 and height 600. With 'inside', the tool takes the smaller ratio, min(800/1600, 600/900) = min(0.5, 0.667) = 0.5, so the result is 800 x 450 and the image fits inside the 800 x 600 box with 150 px of unused height. Switch to 'exact' and you get the full 800 x 600, which stretches the image by 600/450 = 1.33 vertically. Switch to 'outside' and it takes the larger ratio, max(0.5, 0.667) = 0.667, giving 1067 x 600: it covers the box but overshoots the width by 267 px, since this tool scales rather than crops.
A taller case: a 1920 x 1080 screenshot reduced to 720 high scales by 720/1080 = 0.667, giving 1280 x 720. Check that 1280/1920 also equals 0.667 and the ratio held.
Limitations to know before you rely on the output
Downloads are produced as data URLs via canvas.toDataURL, which encodes the file as base64. Base64 inflates size by about 33%, so a 300 KB PNG becomes roughly 400 KB in memory before the browser writes it back out. A 4000 x 3000 image resized to 4000 x 3000 or larger can hit browser canvas limits: Chrome and Firefox cap a single canvas dimension around 32,767 px but total area near 268 megapixels, so very large source images may silently fail or render blank.
The JPEG option re-encodes at a fixed 0.92 quality. Re-saving an already compressed JPEG at 0.92 loses a little detail each pass; resize the same file three times and compression artifacts compound. PNG output is lossless, but photographs saved as PNG commonly grow 3 to 10 times larger than the equivalent JPEG, so PNG suits screenshots, logos, and line art while JPEG suits camera photos.
Downscaling uses high-quality browser smoothing, which looks clean, but upscaling cannot invent detail: a 400 x 300 thumbnail stretched to 1600 x 1200 is four times larger in each axis and will look soft no matter the setting. Finally, 'outside' mode overshoots the box rather than cropping, so a 16:9 image fitted outside a 1:1 box produces 33% extra width that must be trimmed elsewhere.