How to use
- Drop images onto the box, or click it to browse — JPEG, PNG, WebP, GIF or BMP, up to 20 files and 30 MB each.
- Choose how to size them under Resize by: Percentage of original scales every image by one factor, while Width & height fits each to a target box.
- In percentage mode, set the slider anywhere from 1% to 200%. In dimensions mode, type a width and/or height and keep Lock aspect ratio ticked so each photo holds its own shape.
- Set the Output format — keep the source type, or convert to JPEG, PNG or WebP — then move the Quality slider, which only affects JPEG and WebP output.
- Images resize the moment they land; after you change any setting, press Resize with current settings to re-run the batch, then take each file or press Download all.
How it works
Every image is decoded off the main thread, with its EXIF orientation flag applied so a photo shot sideways still lands upright. The tool then computes the target size, hands the pixels to pica — a resampler running a Lanczos3 filter in a Web Worker — and writes the result back to a file through the canvas API.
What the target size comes to depends on the mode. Percentage multiplies both sides by the slider value. In Width & height mode with the ratio locked, the two numbers act as a bounding box: the image is scaled by the smaller of width ÷ original-width and height ÷ original-height, so it fits inside without stretching. Load a 4160 × 3120 phone photo (a 4:3 frame) and set the box to 1080 × 1080. The tool weighs 1080 ÷ 4160 = 0.2596 against 1080 ÷ 3120 = 0.3462, keeps the smaller, and scales everything by 0.2596 — the output is 1080 × 810, saved as beach-1080x810.jpg. The box was square, but the picture kept its 4:3 shape. Because JPEG carries no alpha channel, choosing it composites the image onto a white background first, and the 0.85 quality value is passed straight to the encoder.
Use cases & limitations
Reach for this the moment an upload form rejects your photo for being too big, when a blog or CMS expects images at a fixed column width, or when a folder of screenshots needs trimming to one consistent size before you file a bug report. Enlarging is possible too, though interpolation can’t reinvent detail the sensor never recorded, so blown-up images read soft.
Two limits are worth knowing. Everything is written back through a canvas, so an animated GIF collapses to its first frame — that one frame is saved as a PNG, not a moving image. And any lossy round trip recompresses: resizing a JPEG at 0.85 quality re-encodes it, so putting the same file through repeatedly will slowly soften its edges. When you want a smaller file at the same resolution, the image compressor trades quality for bytes without changing dimensions; to swap only the file type, the image converter is the direct path; and for square app icons at set sizes, the favicon generator handles the crop-and-scale in one pass.
Privacy note
Nothing you drop here is uploaded. Decoding, resizing and re-encoding all happen inside the tab — pica’s filter runs in a Web Worker on your device, and the page never issues a request that carries pixel data, so a batch finishes just as readily with the network switched off after the page has loaded. The file you download is a fresh copy; where it goes next is entirely your call.