首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImageMagick convert for循环

ImageMagick convert for循环
EN

Stack Overflow用户
提问于 2017-07-27 05:01:51
回答 2查看 5.4K关注 0票数 2

我想在一个文件目录中迭代这段代码:

代码语言:javascript
复制
convert Film_Crew.jpg -resize 1920x1080 -size 1920x1080 xc:black +swap -gravity center -composite Film_Crew_resize.jpg

我的目录中的图像:

Film_Crew.jpg

Film_Crew copy.jpg

Film_Crew copy 2.jpg

Film_Crew副本3.jpg

Film_Crew copy 4.jpg

Film_Crew copy 5.jpg

Film_Crew copy 6.jpg

我尝试使用这段代码,因为我上次尝试时它对我有效,但现在它不起作用。

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

我在终端的Mac上工作。我得到的错误是:

convert:无法打开图像错误‘@Film_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format/builte.c/ReadImage/504.convert:无法打开图像错误‘@copy': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format/builte.c/ReadImage/504.convert:无法打开图像错误黑色‘@2.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such image/mogrify.c/MogrifyImageList/8770.convert:无图像定义错误胶片_Crew‘:没有这样的文件或目录@new/Film_Crew copy 2.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open image/blob.c/OpenBlob/2701。convert: no decode delegate for this image format ' @ error/constitute.c/ReadImage/504. convert: unable to open imagecopy':没有这样的文件或目录@ error/blob.c/OpenBlob/2701。convert:此图像格式' @ error/constitute.c/ReadImage/504. convert: unable to open image3.jpg没有解码委托:没有这样的文件或目录@ error/blob.c/OpenBlob/2701。convert:没有这样的图像错误/black' @ error/mogrify.c/MogrifyImageList/8770. convert: no images defined_Crew copy 3.jpg‘@ error/convert.c/ConvertImageCommand/3258.convert:无法打开图像错误‘@Film_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format/builte.c/ReadImage/504.convert:无法打开图像错误‘@copy': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format/builte.c/ReadImage/504.convert:无法打开图像错误黑色‘@4.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such image/mogrify.c/MogrifyImageList/8770.convert:无图像定义错误胶片_Crew‘:没有这样的文件或目录@new/Film_Crew copy 4.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open image/blob.c/OpenBlob/2701。convert: no decode delegate for this image format ' @ error/constitute.c/ReadImage/504. convert: unable to open imagecopy':没有这样的文件或目录@ error/blob.c/OpenBlob/2701。convert:此图像格式' @ error/constitute.c/ReadImage/504. convert: unable to open image5.jpg没有解码委托:没有这样的文件或目录@ error/blob.c/OpenBlob/2701。convert:没有这样的图像错误/black' @ error/mogrify.c/MogrifyImageList/8770. convert: no images defined_Crew copy 5.jpg‘@ error/convert.c/ConvertImageCommand/3258.convert:无法打开图像错误‘@Film_Crew': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format/builte.c/ReadImage/504.convert:无法打开图像错误‘@copy': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no decode delegate for this image format/builte.c/ReadImage/504.convert:无法打开图像错误黑色‘@6.jpg': No such file or directory @ error/blob.c/OpenBlob/2701. convert: no such image/mogrify.c/MogrifyImageList/8770.convert:无图像定义错误胶片_Crew‘:没有这样的文件或目录@new/Film_Crew copy 6.jpg' @ error/convert.c/ConvertImageCommand/3258. convert: unable to open image/blob.c/OpenBlob/2701。convert:此图像格式没有解码委托' @ error/constitute.c/ReadImage/504. convert: unable to open imagecopy.jpg':没有这样的文件或目录@ error/blob.c/OpenBlob/2701。convert:没有这样的图像错误/black' @ error/mogrify.c/MogrifyImageList/8770. convert: no images defined_Crew copy.jpg‘@ error/convert.c/ConvertImageCommand/3258.convert:无法打开图像``new/FileCrew.jpg‘:没有这样的文件或目录@ error/blob.c/OpenBlob/2701。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-27 06:47:33

有了mogrify,生活会更轻松-没有for循环,没有引用:

代码语言:javascript
复制
mkdir new
mogrify -path new -resize 1920x1080 -background black -gravity center -extent 1920x1080 *jpg
票数 1
EN

Stack Overflow用户

发布于 2017-07-27 13:41:17

假设你所有的输入图像都是JPG,尝试使用ImageMagick。我将Internal Field Specifier设置为新行,以便文件名中的空格被视为名称的一部分。

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45337370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档