Skip to content

Image Resize

Pick a target size, drop the file. Output as PNG, JPEG, or WebP. Stays in your browser.

Most online image-resize tools upload your file to a server, run ImageMagick or Sharp, and serve back the result. That works, but it costs you privacy (your file passes through a third party) and time (round-trip vs render-locally). The widget below uses the browser’s createImageBitmap + Canvas2D API to resize entirely in your browser. The file never leaves your device. Modern browsers render high-quality bilinear interpolation, which is what server-side tools use by default.

Drop an image here, or

PNG, JPG, WebP, GIF, SVG. Up to 16 MB. Stays in your browser.

How to use

  1. Drop a file or pick one

    PNG, JPG, WebP, GIF, SVG up to 16 MB. The original dimensions appear once it loads.

  2. Type your target dimensions

    Lock the aspect ratio (default) to preserve the original proportions, or unlock to set width and height independently.

  3. Pick fit + format

    Contain letterboxes to fit. Cover crops to fill. Stretch ignores aspect. Output as PNG (lossless), JPEG (smallest), or WebP (best ratio).

  4. Download the result

    The filename includes the new dimensions. Output stays in your browser; the only network request is your eventual download from the page.

Common target sizes

UseDimensionsFormat
Open Graph image1200 × 630PNG / JPEG
Twitter card (summary_large)1200 × 628JPEG
Instagram square1080 × 1080JPEG
Instagram story1080 × 1920JPEG
Favicon (apple-touch-icon)180 × 180PNG
App store icon (iOS)1024 × 1024PNG
Avatar (most platforms)400 × 400PNG / WebP
Email signature200 × 60PNG

Frequently asked questions

Does the image upload to your server?
No. The resize happens entirely in your browser via createImageBitmap and Canvas2D. The page is statically prerendered and makes no network requests for the image. We have no way to see your file.
Which output format should I pick?
WebP for the web (~25-35% smaller than JPEG at the same visual quality, supported by every browser since 2020). JPEG for legacy compatibility. PNG when you need lossless or transparency. Skip GIF — for static images it's strictly worse than the others.
What does the quality slider do?
For JPEG and WebP, it controls how aggressively the encoder discards detail. 90% is visually indistinguishable from the source for most photos at ~1/10 the file size of PNG. 60-75% is fine for thumbnails. Below 50% starts showing visible artifacts.
What's the difference between contain, cover, and stretch?
Contain shrinks the image to fit inside the target box, padding with white (JPEG) or transparency (PNG/WebP) where needed — no cropping, no distortion. Cover scales until the image fills the target box and crops the overflow — no padding, but cropping. Stretch ignores aspect ratio and squashes the image to the exact dimensions — useful only when the source is already the right aspect.
Why is my JPEG output not transparent?
JPEG doesn't support alpha. Transparent regions of a PNG or WebP source become white when you save as JPEG. To keep transparency, pick PNG or WebP as the output format.
Can I resize SVG?
Yes, but the output will be raster (PNG/JPEG/WebP). SVG is vector — for a truly resolution-independent result, keep the SVG and just change the width/height attributes in your code. This tool is for raster output.
What's the maximum file size?
16 MB. Larger files can cause the browser to run out of memory during decode. For very large images, downscale in a desktop editor first.

About

How the resize math works

Bilinear interpolation samples four source pixels for each output pixel and computes a weighted average based on the fractional position. It's smooth for downscales >50% and fine for most upscales. For aggressive downscales (e.g. 4096×4096 → 200×200), browsers internally chain multiple bilinear passes to avoid the aliasing that a single-pass would produce — the visual quality is comparable to professional tools.

When to keep the original

If you might need a larger version later, archive the original. Resizing is one-way — upscaling a downscaled image never recovers the lost detail. Common pattern: keep the source as PNG, generate web-ready WebP variants at the sizes you need, and serve those via a <picture> tag or HTML srcset.