Free Image Resizer Online

Exact pixel dimensions or one-click social media presets — no upload, 100% private

100% private — files never leave your device

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.

image_resizer.sh
$resize --input
🖼️
Drop an image here or browse files
JPG · PNG · WebP · GIF · BMP
output
$Resize complete ✓
🔒 Privacy first: All resizing happens locally in your browser using the Canvas API. Your images are never uploaded to any server. Unlike most online tools, nothing is uploaded anywhere — not even temporarily.

Your Files Never Leave Your Browser

100% Client-Side Processing

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.

No Account. No Tracking of File Contents.

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.

Open About Our Limits

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

  1. Upload your image
    Drag 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.
  2. Choose dimensions or a preset
    Type 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.
  3. Fill or Fit — pick a mode
    Fill 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.
  4. Preview and download
    Click 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.

> social_media_image_sizes

PlatformUse CaseSize (px)Notes
InstagramPortrait post1080 × 13504:5 ratio — most real estate in feed
InstagramSquare post1080 × 10801:1 ratio — classic, works everywhere
InstagramStory / Reel1080 × 1920Full-screen vertical, 9:16
YouTubeThumbnail1280 × 72016:9 — high contrast text works best
YouTubeChannel banner2560 × 1440Safe zone: center 1546 × 423px
Twitter / XPost image1600 × 90016:9 — fills feed card fully
Twitter / XHeader photo1500 × 5003:1 ratio — profile banner
FacebookPost image1200 × 6301.91:1 — also the OG image standard
FacebookCover photo820 × 312Desktop display size
LinkedInPost image1200 × 6271.91:1 — same as Facebook post
LinkedInBanner1584 × 3964:1 ratio — profile header
Web (OG)og:image / link preview1200 × 630Shown when sharing links in chat apps

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.

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.

One 1920×1280 source photo resized to four common targets through tooldev.app's own Canvas pipeline (Fill mode, JPEG @ 82%). Sizes are byte-exact from the returned Blob; KB rounded to one decimal.
Target Pixel dimensions File size Smaller than source
Source photo1920 × 1280336.6 KB
Twitter / X Post1600 × 90061.5 KB−81.7%
Instagram Square1080 × 108057.8 KB−82.8%
YouTube Thumbnail1280 × 72043.2 KB−87.2%
Email / web inline640 × 36012.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.

> frequently_asked_questions

Is this one of those sketchy image tools that uploads my photos to a server?
No. The resizer runs entirely in your browser using the Canvas API — your image never leaves your device. No server, no upload, no account. You can disconnect from the internet after the page loads and it still works.
What is the difference between Fill and Fit mode?
Fill (also called Cover) scales the image so it completely fills the target dimensions, then crops any excess from the center. The output has no borders and exactly matches the target size. Fit (also called Contain) scales the image to fit entirely inside the target dimensions, adding padding if the aspect ratios do not match — transparent for PNG and WebP, white for JPG. Use Fill for social media posts where you need exact dimensions. Use Fit to avoid cropping any part of the image.
What are the correct image sizes for Instagram, YouTube, and Twitter?
Instagram: Portrait 1080×1350px, Square 1080×1080px, Story/Reel 1080×1920px. YouTube: Thumbnail 1280×720px, Channel Banner 2560×1440px. Twitter/X: Post image 1600×900px, Header 1500×500px. Facebook: Post 1200×630px, Cover 820×312px. LinkedIn: Post 1200×627px, Banner 1584×396px. All these presets are available with one click in the resizer above.
Will resizing reduce image quality?
Downscaling (making an image smaller) with this tool produces excellent quality. It uses a step-down algorithm that halves the image in 50% increments before the final resize — this approximates Lanczos-quality output using native browser APIs. Upscaling (making an image larger) will look soft since new pixels are interpolated. For best results, always start with a source image larger than your target size.
Can I resize an image without changing its aspect ratio?
Yes. Enable the aspect ratio lock checkbox next to the width and height inputs. When locked, changing either dimension automatically updates the other to maintain the original ratio. The lock is cleared when you select a preset (presets have fixed dimensions by design).
Is this image resizer free, and does it add a watermark?
Yes — it is completely free with no watermark, no sign-up, and no daily limit, so you can resize as many images as you like. There is no paid tier and nothing is uploaded: every resize runs locally in your browser, which is why there is no cost to pass on to you. All you need is a modern browser.
How do I resize an image without cropping any part of it?
Switch the Mode from Fill to Fit before you resize. Fit scales your whole image to sit inside the target width and height without cutting anything off; where the aspect ratios differ it adds padding — transparent for PNG and WebP output, white for JPG. Fill, by contrast, crops the edges to fill the frame exactly. Choose Fit whenever keeping the entire image visible matters more than an edge-to-edge fit.
What size should I resize a photo to for email?
Most email layouts display images in a content column around 600 pixels wide, so resizing a large photo down to roughly 600–800px on its longest side keeps it sharp while cutting the file size dramatically. Smaller attachments send faster and are less likely to be clipped by a mailbox size limit. Use Fit mode to keep the whole image visible and JPG output for photographs.
How do I resize an image to exact pixel dimensions?
Type the exact width and height you need into the two size fields — for example 800 × 600 — and leave the aspect ratio lock unchecked so each value stays exactly as entered. Click Resize & Preview and the output matches those pixels precisely. Keep Fill mode if the frame must be filled edge to edge, or switch to Fit to avoid cropping.
Can I make an image wider without stretching it?
Yes — the tool never stretches pixels, so a wider result comes from padding or cropping, not distortion. Enter the wider width you want, turn off the aspect ratio lock so the height stays put, then choose Fit to keep the entire image and let it add padding where the shapes differ (transparent for PNG and WebP, white for JPG), or Fill to crop the overflow instead. Your subject keeps its natural proportions either way.
Does making an image smaller also shrink its file size?
Usually, yes. A photo's file size is driven largely by how many pixels it contains, so cutting the dimensions cuts the data the file has to store — often dramatically. Resizing a 4000-pixel photo down to 1080 pixels can take the file from megabytes to tens of kilobytes at the same quality. Export as JPG or WebP for the smallest photo files.