Image Resizer – Bulk Resize Images & Crop Images
Pricing
from $1.00 / 1,000 resized images
Image Resizer – Bulk Resize Images & Crop Images
Resize images in bulk to every size you need in one run: thumbnails, web sizes, exact crops or padded squares. Keep the format or convert to WebP, get one ZIP, and see the exact dimensions of every file. Failed images are free.
Pricing
from $1.00 / 1,000 resized images
Rating
0.0
(0)
Developer
Tidyrun
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Image Resizer – Bulk Resize to Many Sizes
Give it image links and the sizes you need. Every image comes back in all of them in one run — thumbnail, web size, exact square crop, padded social banner — each file named after its size, with the exact dimensions you actually got.
Quick start
- Paste your image links into Image URLs (or upload a text file with one URL per line).
- Leave the Sizes as they are, or write your own — one per line.
- Click Start. The Output tab shows every file with its size name and dimensions.
Input example:
{"imageUrls": [{ "url": "https://example.com/photo.jpg" },{ "url": "https://example.com/logo.png" }],"sizes": ["thumb:400x400 crop", "medium:800", "og:1200x630 pad", "large:1600"],"format": "webp","zip": true}
Output row (shortened):
{"sourceUrl": "https://example.com/photo.jpg","size": "thumb","requested": "thumb:400x400 crop","status": "resized","fileUrl": "https://api.apify.com/v2/key-value-stores/.../photo-3f1c2a9b7e-thumb.webp","width": 400,"height": 400,"bytes": 29307,"originalWidth": 1280,"originalHeight": 1709,"format": "webp","cropped": true,"upscaled": false,"chargedAsImages": 1}
How to write a size
| You write | You get |
|---|---|
800 | At most 800 px wide, height follows the picture |
x600 | At most 600 px tall, width follows the picture |
800x600 | Fits inside 800 × 600 — nothing cut off, so one side is usually smaller |
800x600 crop | Exactly 800 × 600, cut from the middle |
800x600 smart | Exactly 800 × 600, cut around the busiest part of the picture |
1200x630 pad | Exactly 1200 × 630, the gaps filled with your Padding colour |
thumb:400x400 crop | The same, and the file is named …-thumb.jpg |
Run it after a scraper
On your scraper or its task, open Integrations, search for this Actor and set its input:
{"datasetId": "{{resource.defaultDatasetId}}","urlField": "images.url"}
Every time the scraper finishes, its images go through this Actor. Leave URL field empty and it finds the image links itself; use a dot path (images.0.url, images.url for a whole list) when you want one exact field. Each row keeps recordIndexes, the dataset rows the image came from.
Settings worth knowing
| Setting | What it does |
|---|---|
| Output format | Keep the original, or convert everything to WebP, JPEG, PNG or AVIF as it is resized. |
| Quality | 82 by default, for JPEG, WebP and AVIF. PNG and GIF stay lossless. |
| Enlarge images that are too small | Off by default. A small source is returned at its own size rather than blown up, and the row says upscaled: false. |
| Padding colour | Only for pad sizes. #ffffff, #0000 for transparent, or a name like white. |
| Put everything in one ZIP | One file to download instead of clicking through a list. |
| Max file size | Skip source images bigger than this instead of spending the run on them. |
Why this one
| Common problem | What happens here |
|---|---|
| One run per size, so four runs for four sizes | Write all the sizes once; every image is made in all of them in a single run. |
Files all called output-1.jpg | Each file is named after the source and the size, e.g. photo-3f1c2a9b7e-thumb.jpg. |
| "Is this really 400 × 400?" | Every row carries the dimensions you got, the original dimensions, and whether it was cropped or enlarged. |
| Small images come back blurry and stretched | Nothing is enlarged unless you ask, and a crop bigger than the source keeps the shape instead of inventing pixels. |
| Transparency turns black | Alpha is kept, and pad can fill with #0000 to stay transparent. |
| Animated GIFs lose their animation | Animated sources keep every frame. |
| Photos come out rotated | EXIF orientation is applied before resizing. |
| "Out of memory" on big batches | Images are resized a few at a time within the run's memory, and one too large gets a clear error instead of crashing the run. |
| One site gets hammered and blocks you | At most 4 images at a time per site, with an automatic slow-down if a site rate-limits. |
| Paying for broken links | 404s, pages that are not images and oversized files are never charged. |
Pricing
Pay per file produced. Files that fail are never charged, and there is no fee just for starting a run.
A resized file up to 3 megapixels (about 2048 × 1448, which is larger than most things you resize to) counts as one — so a thumbnail from a 40-megapixel photo is still one. Only a file bigger than 3 megapixels counts one more per 3 megapixels. Each row says what it was charged as in chargedAsImages.
Four sizes of one image are four files, so one source image at four sizes counts as four.
Call it from your code
curl -X POST "https://api.apify.com/v2/acts/tidyrun~image-resizer/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H 'Content-Type: application/json' \-d '{"imageUrls":[{"url":"https://example.com/photo.jpg"}],"sizes":["thumb:400x400 crop","large:1600"]}'
Tips
- Building a responsive
srcset?400,800,1600in one run gives you the three files and their exact widths for thewdescriptors. - Product grid?
thumb:400x400 cropkeeps every tile the same shape;padwith#ffffffif you would rather not cut the product. - Social preview?
1200x630 padis the usual Open Graph size, and padding keeps the whole picture visible. - Want them smaller as well as shorter? Set Output format to WebP — resizing and converting happen in the same pass.
Responsible use
Downloads the image URLs you provide, as an ordinary visitor. It does not log in, does not solve CAPTCHAs and does not collect personal data. Only resize images you have the right to use.