Image Resizer — resize PNG, JPG, WebP in your browser
Drop an image, pick a size or a social-media preset, hit Resize. The image is decoded and re-drawn locally with the HTML Canvas API — pixels never leave your machine. Aspect-locked by default, EXIF-aware, with 11 ready-made presets for Instagram, YouTube, LinkedIn and friends.
Pick a size, choose a format, and the resized image will appear here.
Resizing…
What people resize images for
"Resize image" is one of the top three image searches on the web (~3M/month). Most of those people are doing one of these six jobs.
E-commerce product photos
Amazon wants 2000×2000, Shopify likes 2048×2048, Etsy is happy at 2000 on the long side. Resize once, hit every marketplace.
Social profile pictures
Instagram and X both crop to a square — start with a 1080×1080 PNG and your face won't get awkwardly cropped on upload.
Email signatures
Outlook and Gmail render images at their natural pixel size. Resize your logo to ~150 px wide so it doesn't look giant in replies.
Blog & article headers
Most blog themes top out at 1600 px wide. Resize down before upload to keep PageSpeed green and CDN bills low.
App-store screenshots
Apple's App Store needs precise pixel dimensions (e.g. 1290×2796 for iPhone 6.7"). Pop in the exact width & height and download.
Online forms & passports
Government and visa portals frequently demand a strict max file size and dimension (e.g. 600×600, < 200 KB). JPEG + quality slider nails it.
From original to resized in five steps
Pick or drop an image
Click the drop zone or drag a file from your desktop. PNG, JPG, WebP, GIF, BMP and SVG all work. The file is read with FileReader — no network requests fired.
Choose dimensions (or a preset)
Type a width, type a height, or click a social-media preset. Aspect-lock keeps the proportions sane while you type. EXIF orientation is auto-honored.
Pick format & quality
Keep the input format ("Auto"), or convert to PNG (lossless), JPEG (smallest) or WebP (best ratio). The quality slider only applies to JPEG & WebP.
Click Resize
The image is drawn into a hidden <canvas> at the new size, then encoded via canvas.toBlob(). Optional sharpen pass is a small unsharp-mask via canvas filter.
Download
The resized blob is turned into an object URL and offered for download. Copy as data URI, copy the image, or pipe it into Image to Base64 for inline embedding.
Frequently asked questions
No. The resizer runs entirely in your browser via the HTML Canvas API. The image bytes never leave your machine — no upload, no server processing, no analytics on the file. You can verify this by opening DevTools → Network and watching while you resize.
PNG is lossless — but resizing also strips embedded EXIF and colour-profile metadata, and re-encodes pixels at a smaller resolution. Both of those reduce the file size on disk without affecting visual quality at the new dimensions. If you want the file to be even smaller, switch the output to WebP or JPEG.
Not yet — this tool resizes one image at a time so the controls (aspect lock, presets, quality) stay simple and obvious. A batch version with parallel canvas workers is on the HCODX roadmap. In the meantime Image Compressor handles multi-file workflows.
Yes for PNG and WebP outputs — alpha channel is preserved exactly. If you pick JPEG (which has no alpha), the tool surfaces a background-colour picker so you can choose what fills the transparent pixels. Default is white, but any hex value works.
EXIF orientation is auto-honored using createImageBitmap(blob, { imageOrientation: 'from-image' }) where supported. iPhone landscape shots and rotated photos render the right way up without any extra clicks. On older browsers we fall back to a plain <img> element, which still respects EXIF in Chrome 81+, Firefox 77+ and Safari 13.1+.
Soft warning at 20 MB and hard refusal at 100 MB. Most browsers can decode larger images but you may run out of memory at very high resolutions (think 24-megapixel RAW conversions), especially on mobile. If you hit the limit, compress first with Image Compressor then resize.
About in-browser image resizing
"Resize image" is one of the most-searched image tasks on the web — roughly 3 million searches per month across English-speaking traffic alone. Most of those searches end on a SaaS page that uploads your photo to a server, processes it remotely, and asks you to sign up for a "pro" tier. That's silly: every modern browser already has a perfectly good resizer built in.
Why Canvas-API resizing is enough
- Privacy. Your photo never crosses the network. If your laptop is air-gapped, this page still works.
- Speed. No round-trip to a server. A 12-megapixel JPEG resizes in 100–300 ms on a five-year-old phone.
- Quality. Browsers use bilinear or bicubic interpolation under the hood when
imageSmoothingQuality = 'high'— comparable to Photoshop's "Bicubic Sharper" for downscaling. - EXIF.
createImageBitmapwithimageOrientation: 'from-image'rotates iPhone/Android photos automatically, so portrait shots don't end up sideways.
Which output format to pick
- PNG — when you need lossless quality, transparency, or you're resizing a logo / screenshot. File size will be the largest.
- JPEG — when the image is a photo and you want the smallest file. Pick quality 80–90 for the sweet spot; anything below 70 starts to show artifacts on faces.
- WebP — the modern compromise: about 25–35% smaller than equivalent-quality JPEG, supports transparency. Universally supported in browsers since 2020, less so in some older photo viewers.
- Auto — keep the input MIME. The only exception: animated GIFs get re-encoded to PNG because
<canvas>cannot preserve animation frames.
Aspect-lock cheatsheet
- Lock ON + edit width → height follows.
- Lock ON + click a preset → the largest dimension wins, the other is computed from the original aspect ratio. (You'll see a small toast confirming.)
- Lock OFF + click a preset → exact preset dimensions are applied, image gets stretched. Use this for app-store screenshots or other "exact pixel" requirements.
- Click "Quick scale" 50% → both dims halve, regardless of lock state.