Bulk Image Resizer
Resize up to 60 images at once with stepwise downscaling for clean results, add or clear files before processing, convert format, and download them all as a ZIP. Nothing is uploaded.
This works right here on your device — nothing gets sent out.
Applies to JPEG and WebP. PNG is lossless and ignores it.
| File | Original | Resized | Before | After | Change | Download |
|---|
Re-encoding drops metadata. EXIF, GPS coordinates and colour profiles do not survive, which is a privacy gain if you are posting photos and a loss if you rely on camera data or embedded copyright. Rotation is read from the file first, so portrait photos stay portrait. Converting an image with transparency to JPEG fills the transparent areas with white, since JPEG has no alpha channel.
How it works
- Choose or drop images. Add more files to the same batch whenever you need, up to 60 total.
- Choose how to resize — fit in a box, fix one side, or scale by percentage.
- Pick an output format and quality, then press resize.
- Save individual files, take the whole set as a ZIP, or clear the batch and start again.
Why a cut cannot always land where you asked
The obvious implementation is one <code class="rounded bg-brand-900/5 px-1">drawImage</code> call at the target size, and it is where most browser-based resizers lose quality. Reducing 4,000 pixels to 400 means every output pixel should be the average of a 10 × 10 block of the original — 100 samples — and the browser's fast path does not take anything like that many. What survives is a thinned selection of the original pixels, which is why fine lines shimmer and small text turns to mush.
[K] � � � � � � [K] � � � � � � [K]
So anything shrinking by more than half is halved repeatedly until one final step lands on the target. It costs a few extra canvas draws and it is the difference between a usable thumbnail and a smeared one.
FAQ
Are my images uploaded anywhere?
No. Every image is decoded, resized and re-encoded in the page, and the ZIP is assembled in the browser too. Nothing is sent to a server, which is the main reason to use this rather than a site that asks you to upload a folder of photos.
Why do my resized images look sharper here than elsewhere?
Because a large reduction is done in halving steps rather than in one go. Asking a browser to draw a 4,000-pixel image straight into 400 pixels means each output pixel is built from a 10×10 area that it does not fully sample, so thin lines and small text break up. Halving repeatedly averages a 2×2 block each time, which is what a proper filter would do.
Does it keep EXIF data and GPS coordinates?
No — re-encoding through a canvas drops all metadata. That is a privacy gain if you are posting photos, since location and camera details go with it, and a loss if you rely on embedded copyright or colour profiles. Rotation is the exception: it is read from the file before drawing, so portrait photos stay portrait.
Why is the ZIP not compressed?
Because there is nothing left to squeeze. JPEG, PNG and WebP are already compressed, and running deflate over them gains essentially nothing — on high-entropy data deflate actually adds about 0.03% in overhead. Storing the files uncompressed inside the archive keeps the packing instant and the result the same size.
What happens to transparency if I convert to JPEG?
It is filled with white before encoding. JPEG has no alpha channel at all, so transparent areas have to become something — and left alone they come out black. The tool paints a white background first, which is almost always what people expect.
Why will it not enlarge my images by default?
Because scaling up adds pixels without adding detail — the result is bigger and blurrier, not better. There is a switch for it, since sometimes you genuinely need an exact size, but it is off unless you ask.
How we compare
| Feature | Online Tool Store | split-video.com | VideoKit |
|---|---|---|---|
| Images never leave your device | ✓ | ✗ | ✓ |
| Stepwise downscaling for clean thumbnails | ✓ | Varies | ✓ |
| No upload wait, no queue, no file-count limit charge | ✓ | ✗ | ✓ |
| ZIP of the whole set, no dependency | ✓ | ✓ | Separate step |
| Add more files or clear the batch before processing | ✓ | ✓ | ✓ |
| Strips GPS and EXIF automatically | ✓ | Usually | Only if asked |
| Preserves metadata and colour profiles | ✗ | ✗ | ✓ |
| Scriptable over thousands of files | ✗ | ✗ | ✓ |
For a folder of photos that needs to be smaller before it goes anywhere, this is the quickest route that does not involve handing them to someone else's server. For thousands of files, or for work where the metadata and colour profile have to survive, a command-line tool is the right instrument.