Reputation: 23
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 image
black' @ error/mogrify.c/MogrifyImageList/8770.
convert: no images defined new/Film_Crew copy 2.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
3.jpg': No such file or directory @ error/blob.c/OpenBlob/2701.
convert: no such image black' @ error/mogrify.c/MogrifyImageList/8770.
convert: no images defined
new/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 image
black' @ error/mogrify.c/MogrifyImageList/8770.
convert: no images defined new/Film_Crew copy 4.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
5.jpg': No such file or directory @ error/blob.c/OpenBlob/2701.
convert: no such image black' @ error/mogrify.c/MogrifyImageList/8770.
convert: no images defined
new/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 image
black' @ error/mogrify.c/MogrifyImageList/8770.
convert: no images defined new/Film_Crew copy 6.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.jpg': No such file or directory @ error/blob.c/OpenBlob/2701.
convert: no such image black' @ error/mogrify.c/MogrifyImageList/8770.
convert: no images defined
new/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.
Upvotes: 1
Views: 7666
Reputation: 207345
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
Upvotes: 1
Reputation: 53089
Try this using ImageMagick assuming all your input images are JPG. I set the Internal Field Specifier to a new line, so that spaces in the filenames are considered part of the name.
cd
cd path2/your_image_directory
OLDIFS=$IFS
IFS=$'\n'
list=`ls *.jpg`
for img in $list; do
convert \( "$img" -auto-orient -resize 1920x1080 \) \( -size 1920x1080 xc:black \) +swap -gravity center -composite "./new/${img%.*}.jpg"
done
IFS=$OLDIFS
Upvotes: 0