Image resizer
Drop in an image, set the exact width and height you need — or scale it by a percentage — and download the result as PNG, JPEG or WebP. The image is decoded and redrawn entirely in your browser: what you load here is never uploaded anywhere.
Drag an image here, or
JPEG, PNG, WebP, GIF, AVIF, BMP — whatever your browser can decode.
This target is larger than the original in at least one direction. Resizing up cannot add detail — the result will look softer than a photo actually taken at this size.
How the resize actually works
Once the image is decoded — via createImageBitmap, with a plain <img> element as a fallback in the rare case that call is unsupported or rejects the file — it is drawn onto an HTML <canvas> sized to your target width and height using drawImage(). The browser does the actual resampling: it does not simply copy or delete pixels, it computes each output pixel from a weighted blend of the nearby input pixels, which is what keeps a downscaled photo looking smooth instead of jagged or aliased.
Two settings on the canvas context steer that resampling:
| Property | Value used here | Effect |
|---|---|---|
| imageSmoothingEnabled | true | Turns on interpolation at all — without it, browsers fall back to nearest-neighbour, which looks blocky at any scale that isn't a whole-number multiple. |
| imageSmoothingQuality | 'high' | Asks the browser's resampler to spend more effort — typically a bilinear or better filter across more source pixels — at some extra CPU cost. Chromium and Firefox both support it; browsers that don't recognise the property simply keep their default quality. |
The exact filter (bilinear, box, Lanczos-like) is left to the browser's own canvas implementation and is not standardised down to the algorithm — this is why the same resize can look microscopically different in two browsers. What is guaranteed is that 'high' never looks worse than the default, and for a large size reduction (say, more than half in either dimension) it typically holds up fine detail noticeably better.
The upscaling caveat
Resizing down is subtraction: there is more source detail than the output needs, so the browser can choose which of it to keep. Resizing up is invention: the output needs pixel values that were never captured, so the browser has to guess them from the pixels around each gap. Smoothing makes that guess look plausible at a glance, but it cannot recover texture, edges or noise that the original capture simply did not record.
Concretely: a 500×375 thumbnail stretched to 2000×1500 is being asked to fill 16 times as many pixels from the same original information. It will look soft, and sharpening it afterwards can make edges look more defined without actually restoring detail — the information is gone, not hidden. If you need a larger image than your source actually is, the honest options are to find a higher-resolution original or accept the softness; this tool flags the situation with a note but cannot fix it, because nothing running client-side (or anywhere else, short of speculative AI upscaling with its own tradeoffs) truly can.
When to resize vs. when to compress
These solve two different problems and people often reach for the wrong one:
- Resize when the image has more pixels than it will ever be displayed at. A 4032×3024 phone photo dropped into a blog post that renders images at 800px wide is carrying nearly 20 times the pixel data the page will ever show. Resizing to roughly the display size is usually the single biggest reduction in file size you can make, because it shrinks the pixel count compression then has to work with.
- Compress when the dimensions are already correct but the file is still too large — re-encoding at a lower quality setting, or switching from PNG to JPEG/WebP for a photo, reduces bytes without touching the pixel dimensions at all.
- Do both for the biggest win: resize to the size you actually need first, then compress the result. This tool handles the first step and lets you choose format and quality on export; a dedicated image compressor is the right tool once the dimensions are already correct and only the file size needs to come down further.
Choosing an export format
| Format | Compression | Transparency | Best for |
|---|---|---|---|
| PNG | Lossless | Yes | Screenshots, logos, flat-colour graphics, anything needing a transparent background |
| JPEG | Lossy, adjustable | No | Photographs — smallest files at quality settings most people can't distinguish from the source |
| WebP | Lossy, adjustable | Yes | Photographs where you also want a smaller file than JPEG, or a photo that needs transparency |
For a photo, start with JPEG or WebP around 80-90% quality and drop the number only if the file still needs to shrink — below roughly 60% you start seeing visible blocky artefacts around hard edges and text. For anything with sharp edges, flat colour fills or text (screenshots, diagrams, icons), PNG's lossless encoding usually produces a smaller and cleaner result than either lossy format, because there is little of the smooth tonal variation JPEG/WebP compression is built to exploit.
The EXIF orientation caveat
Many cameras and phones store a photo in the sensor's native orientation and record how it should actually be displayed in a separate EXIF orientation tag, rather than rotating the pixel data itself. Photo viewers and operating systems generally read that tag and show the photo right-side up — but browsers do not all treat that tag the same way once the file is decoded onto a canvas, so an image that looks correct in your gallery app can come out sideways or upside down here.
This tool does not read, honour or rewrite EXIF orientation. If your resized download comes out rotated, open the original in your phone or computer's photo app and rotate it there first — most apps bake the correct orientation into the pixels when you do that — then resize the corrected file.
Frequently asked questions
Does resizing an image here upload it anywhere?
No. The file is decoded and redrawn to a canvas inside your own browser tab. There is no server call at any point in the process — pick, resize, preview and download all happen on your device, and the image you loaded never leaves it.
Will making an image bigger make it look better?
No — resizing up cannot add detail that was never captured. Enlarging a 400×300 photo to 1600×1200 stretches the same pixel information over four times the area, which is why upscaled images look soft or blurry rather than sharper. The tool flags this with an upscaling note whenever your target size is larger than the original in either direction.
Which format should I export — PNG, JPEG, or WebP?
PNG is lossless and keeps transparency, which makes it the right choice for screenshots, logos, and graphics with flat colour or text — but it produces the largest files for photographs. JPEG is lossy and built for photos: it has no transparency but gets very small files at a quality setting most people cannot tell apart from the original. WebP is also lossy (with an optional lossless mode not exposed here) and typically beats JPEG at the same visual quality, though very old software may not open it. If you are unsure and the image is a photo, try JPEG or WebP at 80-90% quality first.
What is the difference between resizing and compressing an image?
Resizing changes the pixel dimensions — a 4000×3000 photo becomes, say, 1200×900. Compressing keeps the same dimensions but re-encodes the file to take up fewer bytes, usually by reducing JPEG/WebP quality. The two combine: resizing to the size you will actually display is normally the bigger win, because it reduces the pixel count compression has to work with in the first place. This tool resizes; a dedicated image compressor is the right next step if the resized file still needs to shrink further at the same dimensions.
Why does my resized photo come out rotated or upside down?
Many phone cameras save a photo in its sensor's native orientation and store the correct display rotation separately, in the file's EXIF orientation tag, rather than physically rotating the pixels. Browsers do not all handle that tag the same way when decoding an image onto a canvas, so a photo that looks correct in your photo app can come out sideways here. This tool does not read or rewrite EXIF orientation — if that happens, rotate the source photo in your phone's own gallery app first (which usually bakes the rotation into the pixels) and resize the corrected file.
Can I resize without distorting or stretching the image?
Yes — turn on "Lock aspect ratio" before you type a width or height. With it on, changing one dimension recalculates the other from the original image's own ratio, so the picture is scaled uniformly rather than squashed. Turning the lock off lets you set width and height independently, which is exactly how you get a stretched or squeezed result if that is what you actually want.
Is there a limit to how large an image I can resize?
Practically, yes — canvases have a per-browser maximum pixel dimension (commonly in the tens of thousands of pixels on a side) and very large images can use a lot of memory to decode and redraw. This tool caps the drawn output at 8000 pixels on a side as a safety margin so an accidental huge value cannot stall the tab; that ceiling is far beyond anything a web page or typical print job needs.
Does downloading the resized image replace the original file on my device?
No. The download is always a new file, saved wherever your browser puts downloads, with the target dimensions appended to its name so it is easy to tell apart from the original. The source file you picked or dropped in is never modified or deleted.
Why did the file get bigger after I resized it smaller?
This usually happens when a photo goes from JPEG to PNG. PNG is lossless, so it re-encodes every pixel exactly, and a photograph has far more per-pixel variation than PNG's compression handles well — a photo re-saved as PNG is very often larger than the same photo as JPEG, even at a smaller size. Keep photos in JPEG or WebP and reserve PNG for screenshots, graphics and images that need transparency.
Use cases & limitations
Where this is genuinely useful
- Getting a photo down to the size a page actually displays it at, before uploading it to a CMS, marketplace listing or email attachment.
- Meeting an exact pixel requirement — a profile photo, banner or listing image that a form insists on a specific width and height for.
- Batching mentally a set of screenshots down to a consistent width for a document or slide deck, one at a time.
- Converting a screenshot to a smaller JPEG or WebP when the destination doesn't need PNG's transparency or lossless precision.
What this tool cannot do
- Batch-process multiple files at once. It works on one image at a time, by design — everything stays in a single tab with no queue or storage between files.
- Crop, rotate or straighten. It changes pixel dimensions only; framing and orientation are left to the source image.
- Add real detail when enlarging. See the upscaling caveat above — smoothing is not the same as recovering information that was never captured.
- Fix EXIF rotation. See the EXIF caveat above — correct the source in your photo app first if it comes out sideways.
- Guarantee an exact target file size. Quality sliders influence size but the final byte count depends on the image's own content; there is no "hit exactly 200 KB" mode.