Batch resize images into new folder using ImageMagick Batch resize images into new folder using ImageMagick bash bash

Batch resize images into new folder using ImageMagick


convert is designed to handle a single input file as far as I can tell, although I have to admit I don't understand the output you're getting. mogrify is better suited for batch processing in the following style:

mogrify -path ../dsc_small -define jpeg:extent=2MB dsc_big/*

But honestly I consider it dangerous for general usage (it'll overwrite the original images if you forget that -path) so I always use convert coupled with a for loop for this:

for file in dsc_big/*; do convert $file -define jpeg:extent=2MB dsc_small/`basename $file`; done

The basename call isn't necessary if you're processing files in the current directory.


This was the command which helped me after a long try.I wanted to make same sized thumbnails from a big list of large images which have variable width and height . It was for creating a gallery page.

convert -define jpeg:size=250x200 *.jpg  -thumbnail 250x200^ -gravity center -extent 250x200  crop/thumbnail-%d.jpeg

I got re-sized thumbnails which all having same width and height. :) thanks to ImageMagick.


Here's a solution without using for loops on the console

convert *.jpeg -define jpeg:extent=2MB -set filename:f '../dsc_small/%t_small.%e' +adjoin '%[filename:f]'