Bulk Image Resizer
Resize hundreds of images at once — for free, in your browser. Drop a folder, choose one size, and grab a single ZIP when it's done. No sign-up, no uploads, nothing to install.
Built for batches
Up to 200 images per run, processed 3 at a time so your browser stays responsive.
One rule, every image
Pick a single resize rule and format — apply it to the whole batch in one click.
Download as ZIP
JSZip packages every resized file in-browser. One click, one archive, done.
Drop images here, or
Up to 200 images · 50 MB each · JPG, PNG, WebP, GIF, BMP
Resize settings
Applied to every imageHow It Works
The bulk resizer processes every image entirely in your browser. No upload happens at any step — your photos never touch our servers.
-
1. Files are read locally with FileReader
When you drop images, the browser's
FileReaderAPI decodes each file into an in-memoryHTMLImageElement. We capture original dimensions and file size, then queue each image for processing. -
2. Canvas resizes with high-quality interpolation
Each image is drawn onto an
HTMLCanvasElementwithimageSmoothingQuality = 'high'. For large reductions (more than 50%), the tool downscales in successive 50% steps to preserve detail and avoid aliasing. -
3. Encoded with canvas.toBlob()
The resized canvas is encoded back to JPG, PNG, or WebP via
canvas.toBlob()with the quality you chose. Three images are processed in parallel usingPromise.all()workers — fast on desktop, safe on mobile. -
4. JSZip builds the archive in memory
When you hit Download ZIP, every output Blob is written into an in-memory archive with
JSZip(STORE mode — already-compressed images don't benefit from deflate). The final ZIP is handed to the browser as a Blob URL download.
Why this beats upload-based bulk resizers
- No upload bottleneck — 200 images of 5 MB each would take minutes to upload. Here it's instant because nothing leaves your device.
- Privacy by design — sensitive screenshots, ID photos, or product shots stay on your machine. Nothing is logged, stored, or analysed.
- Works offline — once the page is loaded, you can disconnect from the internet and keep resizing.
- No file-count caps from a paywall — the only limit is your device's memory.
- Same rule, every image — bulk-friendly modes (longest side, fit-to-box) avoid distortion when batching mixed orientations.
Tips for common bulk workflows
E-commerce product photos
Use Fit inside box at 1500 × 1500 with WebP at 85% quality. Mixed-orientation shots stay perfectly square in your storefront.
Blog hero images
Use Exact width at 1200 px with WebP at 80% quality. Heights vary, widths match — perfect for responsive layouts.
Social media uploads
Use Longest side at 2048 px with JPG at 90% quality. Matches Instagram/Twitter limits without uploading anything.
Email-friendly attachments
Use Percentage at 50% with JPG at 75% quality. Quick, predictable file-size reductions across a whole folder.
Frequently Asked Questions
Are my images uploaded anywhere?
No. Every image is read, resized, and zipped locally in your browser. Nothing is sent to a server at any point.
How many images can I resize at once?
Up to 200 images per batch, with a 50 MB cap per file. Files are processed three at a time so even mobile browsers stay responsive.
Can I mix portrait and landscape images?
Yes. Modes like Longest side and Fit inside box handle mixed orientations cleanly without distorting either group.
Will the ZIP file be smaller than the input?
It depends on your settings. Reducing dimensions or switching to WebP usually shrinks the total significantly. The ZIP itself uses STORE mode — image formats are already compressed, so further deflate gives almost nothing in exchange for a much slower archive build.
Does this work offline?
Yes. After the page loads once, you can disconnect from the internet and continue resizing batches.