Search code examples
for-loopimagemagickimagemagick-convert

ImageMagick convert for loop


I would like to iterate this code over a directory of files:

convert Film_Crew.jpg -resize 1920x1080 -size 1920x1080 xc:black +swap -gravity center -composite Film_Crew_resize.jpg

Images in my directory:

Film_Crew.jpg

Film_Crew copy.jpg

Film_Crew copy 2.jpg

Film_Crew copy 3.jpg

Film_Crew copy 4.jpg

Film_Crew copy 5.jpg

Film_Crew copy 6.jpg

I tried to use this code because it worked for me last time I tried, but it isn't working now.

for i in *.*; do convert $i -auto-orient -resize 1920x1080 -size 1920x1080 xc:black +swap -gravity center -composite "new/${i%.*}.jpg";done

I am on a Mac working in Terminal. The error I get is this:

convert: unable to open image Film_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format' @ error/constitute.c/ReadImage/504. convert: unable to open image copy': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format' @ error/constitute.c/ReadImage/504. convert: unable to open image 2.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such imageblack' @ error/mogrify.c/MogrifyImageList/8770. convert: no images defined new/Film_Crew copy 2.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open imageFilm_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format ' @ error/constitute.c/ReadImage/504. convert: unable to open imagecopy': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format ' @ error/constitute.c/ReadImage/504. convert: unable to open image3.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such image black' @ error/mogrify.c/MogrifyImageList/8770. convert: no images definednew/Film_Crew copy 3.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open image Film_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format' @ error/constitute.c/ReadImage/504. convert: unable to open image copy': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format' @ error/constitute.c/ReadImage/504. convert: unable to open image 4.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such imageblack' @ error/mogrify.c/MogrifyImageList/8770. convert: no images defined new/Film_Crew copy 4.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open imageFilm_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format ' @ error/constitute.c/ReadImage/504. convert: unable to open imagecopy': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format ' @ error/constitute.c/ReadImage/504. convert: unable to open image5.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such image black' @ error/mogrify.c/MogrifyImageList/8770. convert: no images definednew/Film_Crew copy 5.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open image Film_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format' @ error/constitute.c/ReadImage/504. convert: unable to open image copy': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format' @ error/constitute.c/ReadImage/504. convert: unable to open image 6.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such imageblack' @ error/mogrify.c/MogrifyImageList/8770. convert: no images defined new/Film_Crew copy 6.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open imageFilm_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format ' @ error/constitute.c/ReadImage/504. convert: unable to open imagecopy.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such image black' @ error/mogrify.c/MogrifyImageList/8770. convert: no images definednew/Film_Crew copy.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open image `new/Film_Crew.jpg': No such file or directory @ error/blob.c/OpenBlob/2701.


Solution

  • Life would be easier with mogrify - no for loop, no quoting:

    mkdir new
    mogrify -path new -resize 1920x1080 -background black -gravity center -extent 1920x1080 *jpg