Batch Image Resizer & Cropper
Resize or crop up to 30 images at once: exact size, fit, percentage or 1:1, 4:5, 16:9, 9:16.
Try an example: Two images in a ZIP → 1:1 squares, WebP · Single image → exactly 32×32 px
How it works
Upload one image or a ZIP with up to 30 images and resize them all the same way: to an exact size (cropped to fill, with a chosen focus point), to fit within a box, by percentage, or cropped to a social-media aspect ratio. Choose the output format and quality and download everything as one ZIP with a per-file report.
- Each file in the upload (or ZIP) is identified by its content; files that are not supported images are listed as skipped. The ZIP is read in memory with limits (30 images, 50 MB each, no encrypted or ZIP64 archives).
- Every image is first turned upright using its EXIF orientation. Fit: scaled so it fits inside the box (never enlarged unless allowed). Exact size: scaled to cover the box, then cropped around the chosen focus. Percentage: scaled by the factor. Aspect ratio: the largest centred (or focused) crop with that ratio, then optionally fitted into the box.
- Scaling uses ImageMagick's default high-quality filter (Lanczos when shrinking photos, Mitchell when enlarging). WebP is encoded with cwebp and AVIF with avifenc when installed.
- Metadata is removed unless you keep it; when kept, exiftool copies it back and resets the orientation tag. The ZIP is built with fixed timestamps so the same input gives the same file.
Cropping removes parts of the picture; check the preview before publishing.
Related tools
- Image Compressor – Shrink JPG, PNG, WebP, AVIF or GIF images: convert, resize, strip metadata and compare sizes.
- Batch Watermark Studio – Add a text or logo watermark to up to 30 images at once: position, tiling, opacity and angle.
- HEIC/RAW Image Converter – Convert iPhone HEIC, AVIF and camera RAW (CR2, CR3, NEF, ARW, DNG…) to JPG, PNG or WebP.
How to use the Batch Image Resizer & Cropper
Resize or crop up to 30 images at once to an exact size, a bounding box, a percentage or a social-media ratio like 4:5, with a per-file report.
What it is for
A product catalogue needs every photo at 1600 px, Instagram wants 4:5 portraits, a website wants 16:9 headers, and doing it one by one in an editor takes an afternoon. Upload one image or a ZIP with up to 30, choose one rule, and every image is processed the same way. You get a ZIP back with a report per file.
There are four modes. Fit scales each image to fit inside a box (never enlarged unless you allow it). Exact size (cover) scales to fill the box, then crops around a focus point. Percentage scales by a factor. Aspect ratio takes the largest crop with 1:1, 4:5, 16:9, 9:16, 3:2 or 4:3, optionally fitted to a width or height. Output can stay in the original format or become JPG, PNG, WebP or AVIF.
It doesn't detect faces or subjects. Cropping uses the focus you choose (centre, top, bottom, a side or a corner).
Worked example
A ZIP with four images and a stray text file: a 2000 × 1335 landscape, a 1335 × 2000 portrait, a 1200 × 900 product shot and a 600 × 450 PNG logo. Settings: aspect ratio 4:5, width 1080, WebP, quality 80:
Resized 4 of 5 files (4:5 crop, WebP): 1.32 MB → 280 KB.
The per-file report:
| File | Before | After | Size |
|---|---|---|---|
| portrait.jpg | 1335 × 2000 | 1080 × 1350 | 477 KB → 135 KB |
| alpine.jpg | 2000 × 1335 | 1068 × 1335 | 454 KB → 117 KB |
| mug.jpg | 1200 × 900 | 720 × 900 | 105 KB → 26 KB |
| logo.png | 600 × 450 | 360 × 450 | 286 KB → 2.7 KB |
scan.txt was skipped as "not a supported image". Only the portrait reached the full 1080 × 1350: the others were cropped to 4:5 from their full height but were too small to reach 1080 px wide, and enlarging was off. That's deliberate, because upscaling would blur them.
A second run with fit within 1600 × 1600, same format, shrank the two big photos to 1600 px on the long side and left the smaller two at their size. The product shot still went through JPG re-encoding and grew slightly, from 105 KB to 109 KB.
How to read the result
- Metrics: images processed, skipped and failed, total size before and after.
- Download: a ZIP (or a single file for a single upload) and a preview of the first result.
- Per-file table: name, output name, status, original and new pixel size, bytes. A "skipped" or "failed" row has a reason.
Check the new pixel size column. That's where you notice an image that came out smaller than the target because it wasn't allowed to be enlarged.
Tips and common mistakes
- Pick the crop focus to match your photos: "north" keeps heads in portraits, "south" keeps the product on the table.
- Exact size always crops when the ratio differs. If nothing may be cut off, use fit instead.
- Images that are already small enough are still re-encoded, so they can grow a little. Leave them out, or use PNG for lossless output.
- EXIF orientation is applied first, so phone photos come out upright. Metadata (camera, date, GPS) is removed unless you tick "keep EXIF".
- WebP or AVIF with quality 75–85 usually cuts web images to a fraction of their JPG size. Keep PNG for logos with sharp edges.
- Only allow enlarging when a fixed size matters more than sharpness. Small images get soft.
FAQ
How many images can I process at once?
Up to 30 per ZIP, each up to 50 MB. Encrypted and ZIP64 archives aren't supported.
Will my photos lose GPS data?
Yes, by default all metadata is removed. Tick "keep EXIF metadata" if you need camera and date information. GPS is kept too in that case.
Can I resize HEIC photos from an iPhone?
Yes. HEIC, AVIF, TIFF, GIF, WebP, PNG and JPG are accepted. Choose JPG or WebP output for files that work everywhere.
Why is one image not exactly the size I asked for?
In fit mode, the aspect ratio is kept, so only one side reaches the box. In any mode, small images aren't enlarged unless you allow it.
Guide last updated:
For scripts and AI agents
- JSON API:
POST https://batchimageresizer.usefulweb.app/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://batchimageresizer.usefulweb.app/mcp· tool namebatch_image_resizer
Example request
curl -s -X POST https://batchimageresizer.usefulweb.app/api/v1/calculate \
-H 'content-type: application/json' \
-d '{…see OpenAPI examples…}'