Batch Image Resizer
Drop in a folder of photos, get back a zip of resized copies — nothing is ever uploaded anywhere.
Drop in a batch of JPEG, PNG, or WebP photos, set a max width/height (or a percentage scale) and a quality level, and download every resized copy in one zip file. Everything happens in your browser — nothing is uploaded, there's no per-batch image cap, and small images are never accidentally blown up past their original size. One-time purchase, works offline forever.
What it does
What it does: Redraws each dropped image onto a canvas at the target dimensions and re-encodes it via the browser's own canvas.toBlob(), preserving aspect ratio by default. Every image gets its own live before/after tile (original size → new size, with a savings percentage), and the whole batch downloads as a single zip built by a hand-rolled, zero-dependency zip writer — no server round trip for the zip, no file-by-file manual saving.
Who it's for: Anyone who regularly needs a folder of full-resolution photos turned into a batch of web-sized copies without opening each one individually or trusting a random upload site with the files. The clearest case: a wedding or event photographer who has just shot 40+ photos at 4000×3000 or larger and needs a 2000px-wide set ready for a blog post or online gallery the same day — not a re-touched export, just a fast, private resize pass before the real edit happens elsewhere.
Example scenario: A wedding photographer finishes a Sunday shoot with 40 full-resolution JPEGs. Monday morning they need a blog-ready set at 2000px wide. They drag all 40 into this tool, set the max width to 2000, leave quality at 85%, click Resize, and download one zip — instead of opening Preview 40 times or uploading a client's unreleased photos to an unfamiliar website.
What it explicitly does not do:
- Does not do any actual editing (crop, color, retouch) — purely a resize/re-encode pass.
- Does not decode HEIC (iPhone's native format) in most browsers — that's a separate tool in this line (HEIC → JPG Converter); drop a HEIC file here and it's reported as a clean per-file error rather than crashing the batch.
- Does not guarantee a smaller output file for every input. Re-encoding through the browser's built-in PNG encoder is not always as aggressive as a dedicated PNG optimizer, so a heavily-optimized small PNG (an icon or logo, for example) can occasionally come back larger even at reduced dimensions — the tool shows this honestly per-file (a red "+X% larger" badge) rather than hiding it. JPEG output reliably shrinks, since the quality slider directly trades size for detail.
- Does not upscale images past their original size by default — a small image already under the target box is left alone, with an explicit opt-in checkbox if enlarging is genuinely wanted.
- Does not batch-rename or reorganize files beyond giving converted-format outputs a new extension.
- Does not store or remember anything between sessions — reload the page and the last batch is gone.
Features
- Resizes a whole batch of photos to a max width/height (aspect ratio preserved) or a percentage scale, and downloads every result as one zip
- Never enlarges an already-small image by default — a "kept original size" badge shows exactly which files were left alone, with an explicit opt-in to allow upscaling
- Live before/after grid: original dimensions and file size next to the resized result for every image, plus a savings (or, honestly, occasional growth) percentage per file
- Adjustable JPEG/WebP quality slider; PNG stays lossless
- A bad file (corrupted, unsupported format, 0 bytes) is skipped with a clear per-tile error message — it never stops or crashes the rest of the batch
- Runs entirely offline in your browser — no network requests, no analytics, no per-batch image cap
Browser support
| Platform | Result | Notes |
|---|---|---|
| Desktop Safari (macOS) | Full | Opened and visually confirmed in the real, installed Safari app (empty-state screenshot). Full functional flow — mixed-format batch resize, transparent-PNG→JPEG white-background compositing, corrupted/empty-file error handling, zip download and re-extraction — additionally verified through WebKit, the same engine Safari runs on. |
| Desktop Chrome (macOS) | Full | Opened and visually confirmed in the real, installed Chrome app. Full functional flow verified through Chrome's own Blink/Chromium engine, including a 51-image batch (with a 12MP+ photo mixed in) that completed in roughly 0.6–2.5s with no UI freeze and zero console errors. |
| Desktop Firefox (macOS) | Full | Opened and visually confirmed in the real, installed Firefox app. Full functional flow verified through Firefox's own Gecko engine — identical pass/fail results to Chromium and WebKit on the same test batch. |
| Edge / Brave | Not separately tested | Both are Chromium-based like Chrome, where the tool was confirmed Full; neither is independently installed on this machine. |
| iOS Safari (iPhone/iPad) | Not verified | No physical iOS device available. Drag-and-drop of files onto a web page isn't available on iOS regardless, but the click-to-browse fallback (``) is a standard API that should work — this is a reasonable inference, not a verified test, and is not claimed as such. |
| Android Chrome | Full | Tested on a real Android device in Chrome — works. |
| Small-viewport / touch | Not verified | Not checked, even via desktop emulation, in this pass. |
Functional testing — dimension math across "fit within box" and "percentage" modes, the default don't-upscale safeguard and its explicit opt-in override, JPEG/PNG/WebP format handling (including transparent-PNG→JPEG white-background compositing, verified at the pixel level), corrupted-file and empty-file error handling that doesn't stop the rest of the batch, a zero-successful-results batch, keyboard-focus basics, dark mode, and a 51-image/12MP+ performance batch — was run end-to-end through all three real browser engines (Chromium, Gecko, WebKit) via Playwright, and the downloaded zip's contents were independently re-opened and pixel-checked with Python/Pillow, not inferred from reading the code.
FAQ
Does my file get uploaded anywhere?
No. The entire tool is one static HTML file with no server component and no network calls. You can open it with your Wi-Fi off, or read the page's source yourself to confirm there's nothing that sends data anywhere.
Does this work on my iPhone/iPad?
Not tested on a physical device, so it isn't claimed as verified either way. The click-to-browse file picker is a standard API that should work on iOS Safari, but drag-and-drop of files onto a web page isn't available on iOS regardless of the tool — you'd use the "click to browse" option there.
What happens to my file if I lose the download?
Nothing is stored by the tool anywhere — your original files are untouched on your computer the whole time, so you can just process the batch again. If you reload the page before downloading the zip, you'll need to re-drop the files; nothing is held in memory across a reload.
Can I use this for client or commercial work?
Yes — personal and commercial use are both fine, including client deliverables.
Is there a subscription?
No. One-time purchase, yours to keep and reuse forever.
Does it reduce image quality?
JPEG/WebP output uses the quality slider you set — higher keeps more detail, lower shrinks the file more. PNG output is always lossless. Resizing itself (making the image smaller) necessarily discards pixel detail, the same as any resize in any tool; this tool doesn't apply any additional lossy processing beyond that.
Is there a limit on how many images I can process at once?
No hard cap is enforced by the tool. It was tested cleanly on a 51-image batch including a 12-megapixel+ photo; very large batches are limited only by your browser's own memory, not by an artificial cap like the 30-image free-tier limits some online tools impose.
- ✓ Runs 100% offline in your browser
- ✓ Single HTML file — no install, no dependencies
- ✓ No account, no telemetry, no tracking
- ✓ Buy once — yours forever
After checkout you get an instant download link. Open the file in any modern browser and it just works.
Pairs well with
✓ runs entirely on your device — Wi-Fi off? Still works.
accounts sign-ups cloud uploads none
✓ your files stay where you put them
Prefer to try before buying? The browser versions of every tool run free at tools.untracked.tools — no upload, ever.