Image Resizer
Resize JPG, PNG and WebP images to exact dimensions. Maintain aspect ratio. Free browser tool.
Advertisement
Drop an image here
or click to browse
Supports JPEG, PNG, WebP, GIF, BMP, SVG
Advertisement
How to Use This Tool
Upload Your Image
Upload any JPEG, PNG, or WebP image. The tool shows the current dimensions and file size.
Set New Dimensions
Enter the target width and height in pixels, or use a percentage (e.g., 50%). Toggle 'Lock aspect ratio' to prevent distortion. Or select a social media preset.
Download Resized Image
Click Resize Image and download. The output format matches the input format by default.
Advertisement
Related Tools
Frequently Asked Questions
What social media image sizes should I use?
Can I enlarge an image without losing quality?
Does resizing also compress the image?
Can I resize to a specific file size?
About Image Resizer
A contractor just sent you a 6016x4016 photo out of a Canon R6 for the About page avatar slot that renders at 200x200 on desktop. Or you are building an email campaign where every client caps inline images at 640px wide and your source assets are all at 2400px from the brand library. This resizer takes any JPEG, PNG, or WebP, lets you resize by exact pixel dimensions, percentage, or a preset target (Instagram square, Twitter card, Open Graph 1200x630, favicon 32px), with an aspect-ratio lock that uses the real source ratio rather than snapping to nearest 16:9. It uses the Pica library for high-quality Lanczos resampling — sharper than the default browser canvas downscale, which uses a bilinear filter that blurs fine detail when reducing by more than 50%. A live preview updates as you type dimensions, and the output file size is previewed before export so you can balance dimensions and quality without re-running the operation five times.
When to use this tool
Building Open Graph preview images
Facebook, LinkedIn, and Slack link previews all want 1200x630 at 2:1 aspect ratio or they center-crop your image in unhelpful ways. Resize a square brand graphic to exactly 1200x630 with letterboxing disabled, aspect lock off, and your OG image fits every social preview without the top of the headline getting sliced off in the feed.
Generating multi-size favicons from a single master
A favicon set needs 16x16, 32x32, 48x48, 180x180 (Apple touch icon), and 512x512 (PWA manifest). Start from a 512x512 source SVG exported as PNG, then run the resizer at each target — Lanczos downscaling preserves the logo edges far better than letting the browser scale a single file at render time.
Preparing images for an email newsletter
Gmail, Outlook, and Apple Mail all render inline images at their intrinsic pixel width. Send a 2400px wide hero in an email template and mobile clients will scale it down with bilinear filtering, producing softness and weight. Resize to exactly 600px wide (the standard email container) and the image ships as-is, crisp on every device.
Fitting a photo into a passport-size frame
Applications like visa portals often demand a precise 35x45mm at 300 DPI, which computes to 413x531 pixels. Switch to pixel mode, uncheck aspect lock, enter the exact dimensions, and the output is the photo the portal will actually accept rather than getting rejected for being off by a few pixels after their server-side validation.
Generating responsive image variants
Your srcset needs the same image at 400w, 800w, 1200w, 1600w, and 2400w so the browser picks the right one per viewport. Resize the master photo five times at each width, upload all variants, and your Next.js Image component or plain <img srcset> delivers the smallest adequate size per device.
How it works
- 1
Lanczos resampling via Pica, not canvas bilinear
The browser's default canvas.drawImage downscale uses a fast bilinear filter that produces visible softness and aliasing when shrinking by more than 2x. Pica runs a three-lobe Lanczos filter in a Web Worker, which preserves high-frequency detail (hair, text, edges) far better at the cost of a few hundred milliseconds of CPU per operation. For upscaling we use bicubic with mild sharpening to avoid the plastic look that pure nearest-neighbor produces.
- 2
Aspect ratio computed from source pixels, not nearest preset
When you lock the aspect ratio we read the exact source dimensions, not the closest standard ratio. A photo that is 4032x3024 is exactly 4:3, but a phone photo at 4030x3022 is not — it is 2015:1511. Snapping to the standard 4:3 would shave 2 pixels off one edge. We preserve the true ratio to the pixel so the resize is a pure scale with no implicit crop.
- 3
Format preserved unless you opt out
A JPEG input produces a JPEG output, a PNG stays PNG, a WebP stays WebP. Resampling happens on decoded RGBA in memory, then the encoder that matches the original format is used for the write-back. This avoids the accidental format-switch surprise where a PNG with transparency comes out as an opaque white-background JPEG because some other tool silently assumed JPEG output.
Honest limitations
- · Canvas and WebAssembly dimensions are bounded — trying to resize above roughly 16000px per side fails silently in Chrome and much lower on Safari iOS.
- · Lossy format inputs (JPEG, WebP lossy) are decompressed before resampling, so each resize+re-export cycle compounds quality loss; always work from the highest-quality source available.
- · Vector formats (SVG, PDF) are not supported as input — convert to a raster first at your desired maximum resolution, then resize down from there.
Pro tips
Downscale once from the largest source, do not chain resizes
If you need a 400px and 800px variant, resize both from the 2400px original rather than making the 800px first and then downscaling that to 400px. Each resample introduces a small amount of aliasing and softness; chaining compounds the loss. One single-step downscale with Lanczos preserves notably more detail than two sequential bilinear or even bicubic passes. Archive the largest master and always branch your variants directly from it.
Round target dimensions to even numbers for JPEG
JPEG operates on 8x8 pixel blocks internally, and chroma-subsampled JPEG (the default) operates on 16x16 macroblocks. Targeting odd dimensions like 801x451 forces the encoder to pad the final block with pixels that are either replicated or zeroed, producing subtle ringing artifacts along the right and bottom edges. Round to the nearest multiple of 8 (ideally 16) for anything JPEG-bound. PNG and WebP do not have this constraint so use any dimensions you want.
Canvas dimensions have real hard limits
Chrome's canvas maxes out at 16384x16384 pixels (65k pixels per side on recent versions), but iOS Safari caps much lower — roughly 4096x4096 on older iPhones and 8192 on recent ones. If you try to resize an 8K photo on an iPhone it will silently fall back to a blank canvas or throw. Resize large masters on desktop, then upload the reduced variants to mobile workflows. Chrome's limit is generous enough that desktop users rarely hit it.
Frequently asked questions
Why does my resized image look blurry compared to the source?
Almost always because you downscaled significantly without a high-quality resampler. The browser's default canvas scaling uses a bilinear filter that averages pixels without preserving high-frequency detail — when you reduce a 4000px photo to 800px, that is a 5x downscale and bilinear produces visibly soft output. Pica's Lanczos-3 filter keeps edges and text sharp at the cost of a longer compute time. If the preview here looks sharp but your post-processing step softens it again, the other step (WordPress media library, a CMS on-the-fly resizer, a CDN image service) is probably running its own bilinear pass on top of ours.
What is the difference between resize and crop?
Resize changes the pixel dimensions of the entire image by resampling — every pixel of the output is computed from the source, and no content is cut. Crop keeps the source resolution but cuts out a rectangular region, discarding the outside. If you resize a 1000x1000 photo to 600x400, you get a squished image because the aspect ratio changed. If you crop to 600x400 you get a rectangular slice of the original at native resolution. For an Open Graph image from a square source you usually want to crop-then-resize (crop to 2:1, then resize to 1200x630) to avoid distortion.
Does resizing reduce file size?
Yes, often dramatically, but the relationship is not linear. Halving each dimension produces a quarter of the pixel count, and for photographic content compressed with JPEG or WebP the output file size usually drops to around 25–35% of the original. For lossless formats (PNG) the drop is closer to 30–50% because the entropy per pixel is similar but there are fewer pixels. If you want maximum size reduction, chain this tool with the image-compressor afterward — resize to the exact display dimensions first, then compress the smaller image with an appropriate quality setting.
Can I upscale a small image to print size?
You can, but physics limits how useful it is. Upscaling cannot recover detail that was never captured — a 500x500 web thumbnail blown up to 3000x3000 will show the same features at bigger size with interpolated smooth patches between the original pixels. Our bicubic upscaler with light sharpening produces a usable result up to roughly 2x enlargement; beyond that consider an ML-based super-resolution tool (Real-ESRGAN, Topaz Gigapixel) that hallucinates plausible detail based on a trained model. For print at 300 DPI, work out the required pixels first (A4 at 300 DPI is 2480x3508) and start from a source that meets it.
Will resizing strip my EXIF data?
By default yes, because the resample step produces a fresh pixel buffer that does not carry the original EXIF block. If you need to preserve capture date, copyright, or GPS (some stock-photo submission workflows require it), re-attach the EXIF after resizing using a dedicated metadata tool like exiftool; the browser APIs do not expose a clean way to carry arbitrary metadata across a canvas operation. For most web-publishing workflows the loss of EXIF is a feature, not a bug, because it strips GPS coordinates that could disclose where a photo was taken.
Resize is almost always a step in a longer image pipeline rather than the final operation. After resizing, run image-compressor to trim the file size — a resized 800px photo still weighs more than it should if the quality is set at the source default. If the target file needs to become a PDF (for invoices, ID documents, or submission portals), images-to-pdf takes the resized output and wraps it in a standards-compliant PDF page. For resizing screenshots that contain sensitive customer data, background-remover is not what you want; use a redaction tool first, then resize the redacted version.
Advertisement