Bulk Image Resizer & Photo Cropper
How to use the image resizer
Back to the toolCrop runs first and the resize runs on what is left, so both happen in one redraw per image and nothing is uploaded anywhere.
- 01
Add the images you want to resize
Drop them anywhere on the page, press Upload images, or paste one straight from the clipboard. Up to 25 MB each · JPG, PNG or WebP. A mixed batch is fine — portrait and landscape can go in together, because every rule below is measured against each image on its own rather than against the set.
- 02
Choose pixels or a percentage
Pixels gives you Width and Height. Leave one of them empty and it is worked out from the other, which is how a batch of different shapes keeps its proportions. Fill both and Keep aspect ratio decides what the pair means: on, each image fits inside that box; off, it is forced to exactly those numbers and stretches.
- 03
Crop to a ratio before the resize
No crop is the default, so nothing is ever cut unless you ask. Pick one of the 6 ratios and the part that survives is taken from the middle, trimming both sides evenly. Exact width × height is the other kind: it crops to the ratio of the two numbers above and then outputs exactly them, which is how you get an undistorted share image at a fixed size.
- 04
Run the batch, one image at a time
Nothing is redrawn until you press Resize images. The button then becomes Pause with a running count: stop after the current image, press again and the rest carry on from there. Each image is drawn once for both the crop and the resize, so asking for both costs no more than asking for one.
- 05
Check the sizes, then take the files
Every finished row is named after the original plus the size it actually came out at, so two runs at two sizes sit side by side instead of overwriting each other. Download ZIP takes the whole batch at once and the buttons on a row take one image. Change a setting after a run and the finished rows dim, with a line above the table saying what to do about it: Settings changed. Press Resize images to update the results.
How to read the resizer results table
Each row puts the two numbers that matter next to each other — how many pixels the image has, and how many bytes that costs — before and after.
Result table columns
- Image
- The thumbnail and the name of the file you will get: the original name with the output size appended. Press the thumbnail to open the image full size. A second line under the name shows up only when the row has something to say, such as a format your browser can read but cannot write, in which case the file is saved as PNG instead.
- Dimensions
- Pixel size before and after, and the column this tool exists for. When only one of the two fields is filled, the second number is different from row to row — that is each image keeping its own shape, not a setting being ignored.
- File size
- File size before and after. Fewer pixels usually costs fewer bytes, but every image is redrawn and re-encoded, so it is not a rule: a small PNG with a limited palette comes back as a full-colour one and can weigh several times what it did going in.
- Result
- One badge per row. Rows still waiting their turn leave it empty on purpose — nothing has happened to them yet, and an empty cell says so more honestly than a fourth badge would.
- Actions
- A download and a copy button once a row is finished, Retry once it has failed. They sit on the row itself, so taking one image back does not mean taking the whole batch.
Result badges
- Processing…
- This image is being worked on right now. Images are processed one at a time, so exactly one row carries this badge during a run.
- Done
- The image was redrawn and there is a file waiting for you. Every image that gets this far produces one, which is why this tool has no third, quieter outcome: asking for the size an image already is still costs it a full re-encode.
- Failed
- This one image could not be produced — hover the badge for the reason. Almost always it is the browser refusing to draw a canvas that big, a limit of the machine rather than of your image, so the same row goes through once you ask for fewer pixels. Everything else in the batch is untouched, and Retry runs just this row again.
How the output size is decided
- Pixels
- You name the target in pixels and every image is measured against it. There is no ceiling at the original size, so a number larger than the image enlarges it — sharpness cannot be added back, and the file usually grows.
- Percentage
- Every image is scaled by the same factor instead of towards the same target, so a batch shot at different resolutions stays as varied afterwards as it was before. Above 100 it enlarges, by the same arithmetic.
- Keep aspect ratio
- Only does anything when both fields are filled. On, the numbers are a box the image fits inside, so one of the two output sides usually lands short of what you typed. Off, they are the output size exactly, and anything that does not share that shape is stretched to fit.
- Exact width × height
- The one setting that guarantees the exact numbers without stretching, because it cuts the shape first and only then scales. It needs both fields, and it is offered in pixel mode alone — a percentage has no pair of numbers to take a ratio from.