Skip to content
GivenTool

Bulk image resizer, compressor and renamer

Resize, compress, convert, rename and strip EXIF from up to 50 images at once, then download them as one ZIP.

Loading tool…

Drop images hereJPG, PNG, WebP, HEIC, AVIF, GIF or BMP. Up to 50 images, 500.0 MB in total.

Up to 50 files, 500.0 MB in total, processed one after another on your device.

Files are processed in your browser, one at a time, and never uploaded.

Preparing a set of photos for a website, a listing or an application usually means the same three or four steps for every file: make them smaller in pixels, bring the file size down, save them in one format and give them sensible names. This page does all of it for a whole batch in one pass. Add up to 50 images (500 MB together), set the steps once, and download one ZIP with every processed file.

Size: keep the pixels, scale by a percentage, fit every image inside a box such as 1600 × 1600 without changing its shape (smaller images are left alone unless you allow enlarging), crop the centre to an exact size such as 1080 × 1080, or stretch to an exact size. Compression: a standard 92% quality, a quality you choose, or a target in KB for each image; with a target, the quality is searched for the best result under the limit, and if quality alone is not enough the dimensions can shrink step by step. Format: keep each file's format or convert everything to JPG, PNG or WebP; HEIC and AVIF from phones become JPG, since browsers cannot write them.

File names follow a pattern: {name} is the original name, {n} a running number ({n:3} gives 001, 002, ...), {date} today's date and {w} and {h} the final width and height, so "trip-{n:3}" or "{name}-{w}x{h}" work as expected. The right extension is always added, and duplicate names get a number. EXIF and GPS metadata are removed by default: a re-encoded image never carries them, and when nothing else changes they are stripped without re-encoding.

Images are processed one after another in a background worker, so the page stays responsive and memory holds one decoded photo at a time. Each file shows its own status, progress and size before and after; a file that cannot be read is marked and the rest carry on. The ZIP is put together from the finished files without copying them into one big buffer.

How to use it

  1. Drop up to 50 images or click to choose them.
  2. Pick the size, compression and format, and type a file-name pattern if you want new names.
  3. Click Process and watch each file finish, with its size before and after.
  4. Download the ZIP, or single files from the list.

Frequently asked questions

Are my files uploaded anywhere?

No. Your browser reads the files and does the work on your device; nothing is sent to a server. The engines (the PDF, image and FFmpeg code) are downloaded from this site the first time an action needs them and then run locally.

How does "target size per image" work?

For each image the quality is searched to find the best result that is at most your limit. If even low quality is too big, the dimensions shrink in small steps until it fits (you can turn that off). PNG has no quality setting, so PNG output switches to JPG in this mode, and the note on the file says so.

Will small images be enlarged?

Not in "fit inside a box" mode unless you tick the option to enlarge; the note on the file says it was left at its size. "Crop to an exact size" and "stretch" always produce the exact size you set.

Is the EXIF location removed?

Yes, with the option on (the default). Re-encoded images never keep metadata. If an image goes through unchanged, EXIF, XMP and GPS data are removed from the JPEG, PNG or WebP without re-encoding, keeping the colour profile and the rotation.

What limits apply?

Up to 50 images and 500 MB in total per batch, and images up to about 8,000 pixels on the long side (larger ones are scaled down while decoding to protect memory). You can run as many batches as you like.

What does the rename pattern accept?

{name}, {n} or {n:3} for a padded number, {date} and {w} or {h}. Anything else is kept as typed, characters that Windows or macOS reject are replaced, and the extension of the output format is added automatically.