Free Image Resizer Online
Exact pixel dimensions or one-click social media presets — no upload, 100% private
Drop any image and resize it to exact pixel dimensions or pick a social media preset in one click — Instagram Portrait, YouTube Thumbnail, Twitter Header, Facebook Cover, and more. The resizer runs entirely in your browser using the Canvas API. Your image is never uploaded anywhere. No account, no watermarks, no fake download buttons. Supports JPG, PNG, and WebP output with adjustable quality.
Your Files Never Leave Your Browser
Conversions run locally in your browser using the Canvas API, with Web Workers used when supported. Your image data stays on your device and is never uploaded to any server.
We use Google Analytics and Google AdSense for aggregated traffic stats and contextual ads when consent allows it. Theme and language preferences stay in your browser. We never see, read, or store the images you convert.
Browser-based conversion has trade-offs: large files (>50 MB) may hit memory limits; animated GIF output flattens to a single frame; EXIF metadata is stripped; ICC color profiles may differ across browsers.
> how_to_resize
- Upload your imageDrag and drop any image (JPG, PNG, WebP, GIF, BMP) into the resizer above, or click to browse. The original dimensions and file size are shown instantly.
- Choose dimensions or a presetType exact pixel dimensions in the width × height fields, or click a social media preset to fill them automatically — Instagram Portrait, YouTube Thumbnail, Twitter Header, and more. Enable the aspect ratio lock to resize proportionally.
- Fill or Fit — pick a modeFill scales the image to exactly cover the target size, cropping any excess from the center. Fit scales to fit inside the target, adding padding if the aspect ratios differ — transparent for PNG and WebP, white for JPG. Fill is best for social media; Fit is best when you need the full image visible.
- Preview and downloadClick Resize & Preview. A preview with exact dimensions and file size is shown immediately. Switch between JPG, PNG, or WebP output, adjust quality, and re-resize instantly. When happy, click Download.
Real Proof — What Resizing Does to File Size
Resizing isn't just about dimensions — shrinking a photo cuts its file weight dramatically, which is the whole point for faster page loads, email attachments, and social uploads. We took one real photograph (source.jpg, 1920×1280, 336.6 KB) and ran it through this exact resizer — uploaded into the tool's own file input, resized with the default Fill mode and JPEG quality 82, then measured the precise output blob the tool handed back. No estimates: every size below is the real byte count of the file the resizer produced.
| Target | Pixel dimensions | File size | Smaller than source |
|---|---|---|---|
| Source photo | 1920 × 1280 | 336.6 KB | — |
| Twitter / X Post | 1600 × 900 | 61.5 KB | −81.7% |
| Instagram Square | 1080 × 1080 | 57.8 KB | −82.8% |
| YouTube Thumbnail | 1280 × 720 | 43.2 KB | −87.2% |
| Email / web inline | 640 × 360 | 12.9 KB | −96.2% |
Why such a big drop? A JPEG's weight scales with the number of pixels it has to encode. Cutting the dimensions cuts the pixel count, so a 1080-wide social image carries a fraction of the data of a 1920-wide original — even at the same quality setting. The smaller the target, the steeper the saving: the 640×360 export is just 3.8% of the source's weight. The trade-off is detail — resize down from a larger original whenever you can, because resizing up only interpolates pixels that were never there.
Methodology & honest caveats
The source was a real photograph saved as a 1920×1280 JPEG. It was uploaded into the live image-resizer.html page in headless Chromium and resized through the page's own controls — the same src/js/resizer.js pipeline (resizeToCanvas() step-down draw, then canvas.toBlob('image/jpeg', 0.82)) a real visitor uses. Each output size is read back from the exact Blob the tool produced, not estimated. The script is in our repository at scripts/resizer-proof.mjs. Honest caveats: (1) File sizes depend heavily on the source — a noisy, detailed photo compresses larger than a flat graphic, so your numbers will differ. (2) These used JPEG at quality 82; PNG or WebP, or a different quality, change the result. (3) Fill mode crops to the exact target ratio (center crop); Fit mode pads instead (transparent for PNG/WebP, white for JPG) and keeps the whole image. (4) JPEG is lossy — each re-encode discards some data; resize once from your highest-quality original. (5) The step-down halving that protects quality only engages for large reductions (beyond 2×) — here that applies to the 640px export; the larger targets use a single high-quality pass.
> resize_without_losing_quality
Can you resize an image without losing quality? In practice, yes — as long as you are shrinking it. Making an image smaller (downscaling) discards pixels you no longer need, and when the result is displayed at that smaller size the loss is invisible: a photo brought down from 4000px to 1080px looks crisp, not degraded. This resizer helps by handling large reductions in stages — halving the image a step at a time before the final pass — instead of jumping straight to the target, which keeps edges clean rather than jagged. Enlarging is the opposite story: upscaling has to invent pixels that were never captured, so the image turns soft no matter which tool you use — always start from the largest original you have. For the output format, choose PNG when you need lossless pixels or transparency (logos, screenshots, line art) and JPG for photographs, where its smaller file size costs you nothing you can see.
> resizing_for_every_scenario
The social media sizes table above covers feed posts, thumbnails, headers, and cover images for every network this resizer ships a one-click preset for. But plenty of resize jobs fall outside social media — shrinking a photo to attach to an email, sizing an image for print, or fitting a picture into a layout without cropping it. Here is how to size for each of those, and exactly how the tool's two modes behave when your image and the target do not share the same shape.
Resizing photos for email
Most email templates lay images out in a content column around 600 pixels wide, so a full-resolution phone photo — often 3000 pixels or wider on its longest side — is many times larger than the message can actually show. Resize the longest side down to roughly 600–800px before you attach it: the image still looks sharp in the email, but the file is a fraction of the size, so it sends faster and is less likely to be clipped by a mailbox attachment limit. Use JPG output for photographs, and pick Fit mode if you want the whole image visible with nothing cropped.
Resizing a profile picture
Profile photos are almost always shown as a square (often masked to a circle on top of that), so the safest approach is to output a square. Set the width and height to the same value, leave the Mode on Fill so the tool scales your photo to cover the square and crops the excess evenly from the center, and keep your subject roughly centered in the original. A square of at least 400×400 pixels is a safe choice for most platforms — large enough to stay sharp, small enough to upload quickly. If you would rather not lose anything to the crop, switch to Fit instead and accept a little padding around the edges.
Resizing for print versus screen
Screens and printers measure size in different units, which is the source of most resizing confusion. A screen renders an image by its pixel count and ignores any DPI (dots-per-inch) tag a file might carry — a 1080×1080 image is 1080×1080 on every display, full stop. Printers work the other way: they pack a fixed number of dots into each physical inch, commonly 300 DPI for photo prints. To work out the pixels you need for a print, multiply the physical size by the DPI — a 4×6 inch photo at 300 DPI needs 1200×1800px, and an 8×10 inch print needs 2400×3000px. This resizer sets pixel dimensions only; it does not let you set a print-DPI tag, so size in pixels for the dimensions your printer expects, and always resize down from the largest original you have rather than up.
Fill versus Fit — which mode to pick
The Mode switch decides what happens when your image's shape does not match the target shape. Fill scales the image until it covers the whole target, then crops the overflow from the center, so the result matches the exact dimensions edge to edge with no bars — the right choice for social posts and any slot that has to be filled completely. Fit does the opposite: it scales the entire image to sit inside the target and adds padding wherever the ratios differ — transparent bars for PNG and WebP output, white bars for JPG, because JPG has no transparency. (If the result is headed for a social network, prefer JPG — most platforms flatten transparency on upload.) Reach for Fit whenever cropping would cut off something that matters. Either way, when you resize down the tool uses a step-down draw — halving the image in stages before the final pass — so large reductions stay clean instead of turning blocky.
Changing aspect ratio without distortion
Changing an image's aspect ratio — turning a wide 16:9 photo into a square, say — always means cropping or padding, never stretching the pixels to fit. Type the new width and height into the custom size fields, turn the aspect ratio lock off first so each dimension moves independently, then decide how to reconcile the two shapes: Fill scales the photo to cover the new frame and crops whatever hangs over the edges from the center, while Fit scales the whole photo to sit inside the frame and adds padding — transparent for PNG and WebP output, white for JPG. What the tool never does is squash or stretch your image to force it into the new proportions, so nobody ends up looking wider or taller than they really are.
> social_media_image_sizes
Focused on one platform? Two of these presets have a dedicated page: resize an image for Instagram covers the Portrait 1080×1350, Square 1080×1080, and Story/Reel 1080×1920 presets in one click, while resize a YouTube thumbnail locks the exact 1280×720 frame and adds a safe-zone guide. For every other size, use the presets and custom fields above.