Bulk resize images with one rule and a ZIP
Bulk resize images when a folder of product shots, scans, or exports should share one size and you do not want to repeat the dialog. The rule is the same as resize image: pixels, percent, or longest side, with lock aspect on, fit inside by default, and do not enlarge on. Each file is resampled with Lanczos. If more than one download is ready, you take them as a ZIP.
Loading tool…
or drop / paste
How to bulk resize images
- Add the JPG, PNG, and WebP files that should share one rule. Drop a group, paste, or Choose files. Up to one hundred files are accepted.
- Pick pixels, percent, or longest side once. Longest side is usually the least surprising for a mix of portrait and landscape, because every file shares the same long edge.
- Leave Lock aspect on. Leave Fit on Fit inside unless every file must fill a frame (cover, center crop) or sit on a coloured pad.
- Leave Do not enlarge on so a small icon in the folder is not stretched up to the box you set for the large photos. Turn it off only if the small files must grow too.
- Choose Keep, JPG, PNG, or WebP for the whole batch. Leave DPI at 0 unless you need JFIF density or a PNG pHYs chunk. Press Resize all, then download the ZIP.
Bulk resize images options explained
One rule is applied to every file. There is no per-file width. If one photo needs a different crop, take it out and use crop image or resize image on its own.
Do not enlarge defaults to on. In a mixed folder that protects icons and thumbnails that are already under the target. The large photos still shrink to the box. The small ones stay at their own pixel size.
Fit inside keeps the whole picture. Crop to cover center-crops each file to fill the box, which can cut different edges on portrait and landscape. Pad uses the pad colour, default #ffffff, to hit the exact width and height.
A ZIP is offered when more than one file is ready. A single file downloads on its own. DPI still only writes JFIF density or PNG pHYs and does not add pixels. The resample is Lanczos, and quality defaults to 80 when the output is JPEG or WebP.
One rule for the whole folder
Bulk resize images exists so you set the geometry once. Percent at 50 makes every file half its own size, which keeps relative differences. Longest side at 1920 makes the long edge match across the set, which is what most galleries want. Pixels with Fit inside puts every file inside the same box without stretching.
The fields you do not use are ignored. If the mode is longest side, the width and height numbers are not the cut. Check the mode before you run a hundred files. The output names are marked resized, and the originals stay in the list until you clear them.
Small files in a mixed batch
Do not enlarge is the control that makes a mixed folder safe. A 400 pixel icon sitting next to a 6000 pixel photo will not be blown up to 1920 if the toggle stays on. You still get the big photos down to the long edge you asked for.
Turn it off only when the brief says every file must be at least that size, and you accept that the small ones will look soft. Lanczos cannot invent detail. Cover and pad still apply after that decision, so a small file can be padded to the exact box even when it was not enlarged.
The ZIP and the density tag
When the run produces more than one file, download them as a ZIP instead of clicking through the list. One file does not need a ZIP and is offered on its own. The archive is built in the tab from the results you already have.
DPI is optional and defaults to 0, which writes nothing. A number such as 300 stores JFIF density on a JPEG or a pHYs chunk on a PNG. It does not multiply the pixels, so a bulk job at 1600 pixels on the long side stays 1600 pixels whether or not you set density. WebP output does not gain a DPI chunk from this control.
Limits, formats and output
| Accepted input | JPEG, PNG, WEBP, GIF, BMP, HEIC, AVIF |
|---|---|
| Files per batch | 1–100 |
| Soft size warning | 50 MB each |
| Hard stop | 500 MB total in memory |
| Output | The chosen image format, or a ZIP for a batch |
| Account | None. The tool runs in this tab. |
Your file never leaves your device
These images are resized together by code in this browser tab. The work runs in a Web Worker in this tab, using WebAssembly for the heavy parts, and the result comes back as a local blob. This site does not upload the file, store it, or log its name.
To verify: load the page, turn on airplane mode, and drop the file again. It still finishes. Or open DevTools, choose Network, and watch the run: there is no upload. The architecture is described on How it works.
Frequently asked questions
Is bulk resize images a different engine?
No. It uses the same pixel, percent, and longest-side options, the same fit modes, the same Lanczos resample, and the same DPI behaviour as resize image. This page is the one aimed at many files and a ZIP download.
Will every file come out the same pixel size?
Only if you pad or cover to a fixed box. Fit inside and longest side keep each file’s own aspect, so a portrait and a landscape will not share both edges. Do not enlarge can also leave a small file at its original size.
What happens to a tiny icon in the list?
With Do not enlarge on, it stays small. It is not scaled up to the box you set for the photos. Remove it from the list if it should not be in the ZIP at all.
Does the ZIP include the originals?
No. The ZIP holds the resized results. Your original files stay on disk where you picked them. The copies in the tab are the inputs for the run, and they are not uploaded.
Can I mix JPG, PNG, and WebP?
Yes. Keep writes each result in the family it came from. Choosing JPG, PNG, or WebP forces that output for every file. Quality 80 is used for JPEG and WebP encodes. A PNG with transparency stays a PNG if you left the format on Keep or PNG.
How many files can one batch hold?
Up to one hundred. A very large set needs enough memory in the tab. If a file cannot be decoded, that file is reported and the rest can still finish. Download the ZIP after you have read any warning.
Last updated 2026-09-26. By Tam.