Image Resizer

Resize an image to exact dimensions or a preset, with an aspect-ratio lock so you only ever type one number. Runs on canvas, in your browser.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.

Drag & drop an image here, or

About This Tool

Draws the source image onto a canvas at a target width and height via drawImage, then exports that canvas as a PNG. Typing a width with "Lock aspect ratio" checked auto-computes the matching height (and vice versa) from the source image original proportions, so the result never looks stretched unless you uncheck the lock on purpose.

Preset buttons cover common cases: half or quarter size, or two fixed resolutions (1920×1080, 800×600). If you need to change the file format rather than the dimensions, use Image Format Converter instead.

Key Features

  • Aspect-ratio lock: Editing one dimension recomputes the other from the original proportions.
  • 4 preset buttons: 50%, 25%, 1920×1080, and 800×600.
  • Before and after preview: Original and resized dimensions shown side by side.
  • Drag-and-drop or file picker: Either way to load a source image.
  • PNG download: Exports the resized canvas via toDataURL.

Frequently Asked Questions

What happens if I uncheck "Lock aspect ratio"?
Width and height become independent: you can set any combination, including ones that stretch or squash the image relative to its original proportions.
Does resizing lose quality?
Enlarging an image beyond its original resolution can introduce blur, since pixels are being invented rather than captured. Shrinking generally looks clean since the browser's canvas scaling applies smoothing automatically.
Why do the preset buttons like 1920×1080 ignore my aspect ratio?
Fixed-resolution presets (1920×1080, 800×600) set both dimensions directly to that exact size, overriding the current aspect-ratio lock for that one click. Toggle the lock back on afterward if you want to keep adjusting proportionally.
Is my image uploaded to a server?
No. Resizing happens locally via the canvas API. The file is never uploaded anywhere.