Downsize Image
Resize JPG, PNG, WebP, GIF in your browser. Numeric scale, format selector, multi-pass anti-aliasing. Free, offline, client-side, instant, secure.
Shrink JPG / PNG / WebP / GIF in your browser. This is a sister tool to downscale-image - same engine, this one uses numeric input instead of a slider for typed precision.
How to Use Downsize Image
- Drop an image on the upload area, or click to pick. JPG, PNG, WebP, GIF accepted. SVG is REJECTED (it's vector - use a vector tool).
- Type a scale in the numeric input (0.05 to 1.00). Out-of-range values clamp; non-numeric falls back to 0.5. Common picks: 0.5 (half size), 0.25 (thumbnail), 0.10 (very small preview).
- Pick output format. "Keep original" preserves JPG → JPG, PNG → PNG, WebP → WebP, GIF → PNG (Canvas can't write GIF). For photos: pick JPG or WebP - the original always output PNG and bloated photos 5-10×.
- Adjust quality (JPG/WebP only - auto-hidden for PNG since PNG is lossless).
- For scale < 0.5, multi-pass halving kicks in. "Halving passes" stat shows count. This is the same engine used in the sister
downscale-imagetool. - Live preview updates 200 ms after each input change. Bloat warning appears if your output ends up LARGER than your input.
- Press Ctrl+Enter or click Resize, then Download (filename preserved:
cat.jpg→cat-resized.jpg) or Copy image to clipboard.
Frequently Asked Questions
How does this differ from downscale-image?
Same engine, different UI control. downsize-image uses a NUMERIC INPUT – type a precise scale like 0.37 directly. downscale-image uses a SLIDER – drag for visual feedback. Both share the multi-pass halving algorithm, format selector, bloat warning, filename preservation, and same Canvas-API constraints. Pick whichever input style you prefer; the output is byte-identical for the same settings.
Why does PNG output bloat photos?
PNG is lossless and uses DEFLATE compression – great for flat-color images (logos, screenshots, UI) but bad for photos because photos have too many unique pixel values for the entropy coder. A 200 KB JPG photo at 1000×1000 px re-encoded as PNG typically lands at 1.5-2 MB. For photos, always pick JPG (DCT-based, photo-tuned) or WebP (modern, supports both lossy and lossless modes). The bloat warning auto-fires when JPG → PNG or output > input.
What does “Halving passes” mean?
For scale < 0.5, the tool halves the image repeatedly (1 → 0.5 → 0.25 → 0.125 …) before the final pass to the exact target size. Each halve is a 4-pixel → 1-pixel average that browsers compute cleanly. Single-pass canvas downscaling at large reductions produces visible Moiré (think fine fabric patterns turning into rainbow shimmer) – multi-pass avoids that. 0.1× of a 10000-px image: 3 halvings to 1250 px then a final pass to 1000 px.
Why is SVG rejected?
SVG is vector – it scales without quality loss. Downsizing SVG would mean rasterizing it to a chosen pixel size, which loses the vector advantage entirely. If you want SVG → PNG/JPG, use a vector-to-raster tool. If you want SVG file-size reduction, use SVGO-style minification.
What about GIF animation?
Only the first frame is kept. Canvas can’t write the GIF87a/89a container, so the output for any GIF input is forced to PNG (the first frame). For animated content output, use a video format (MP4/WebM) or APNG.
What’s the max image size this handles?
Soft 50 MB: info toast warns the browser may freeze. Hard limit: Canvas dimensions are browser-capped (Chrome ~32k × 32k, Safari ~16k × 16k). Beyond that drawImage fails silently or the tab crashes from memory pressure. For very large images use a desktop tool (ImageMagick, Affinity Photo, etc.).
Does this work offline?
Yes. Once the page loads, no network requests. All processing uses Canvas 2D API in the browser. Verify by disconnecting your internet and reloading the cached page.
Is my data secure?
Yes, 100% client-side. No upload, no analytics, no telemetry. Verify via your browser’s Network tab – only initial HTML/CSS/JS load happens.