Search code examples
imagemagickzsh

Batch convert images without using a 'for' loop


To batch convert images, I use a for loop:

for f in *.(jpg|png); do magick $f -resize 64x64\> output-folder/$f; done

note I use Zsh. If you use Bash, you need *.{jpg,png} and not *.(jpg|png)

But maybe there is a simpler way, provided either by ImageMagick or by a shell itself? Something like this:

# Doesn't work
magick *.{jpg,png} -resize 64x64\> output-folder/

Solution

  • With mogrify, like this:

    mkdir OUTPUT
    magick mogrify -path OUTPUT -resize 64x64\> *.jpg *.png