我在同一级目录下有两个文件夹 folder1和文件夹2 现在我尝试将folder1中的所有图像转换为folder2并使用相同的文件名。 这就是我现在所拥有的:
for f in folder1/*.jpg
do
convert $f -resize 80%X80% +profile "*" -quality 85 folder2/$f
done
并从它尝试转换的每个文件中抛出以下消息: 转换:无法打开图像`folder1 / folder2 / st-3474827-1.jpg':没有这样的文件或目录@ blob.c / OpenBlob / 2440。
我知道它的目录问题但谷歌已经两天了但还不知道如何解决它。你能帮我解决这个问题吗?
答案 0 :(得分:11)
有两种方法可以解决它。
使用mogrify
:
mogrify -path folder2 -thumbnail 50x50 folder1/*.jpg
使用basename
:
for filename in folder1/*.jpg; do
basename="$(basename "$filename" .jpg)"
convert "folder1/$basename.jpg" -thumbnail 50x50 "folder2/$basename.jpg"
done
前一种选择可能更好,但后者可能更清楚。
答案 1 :(得分:0)
我发布了几个错误的答案。对不起,我只是假设mogrify或convert会在输出到不同的路径时表现良好。不应该假设。我不知道Imagemagick是否可以输出到不同的目录。您可能只需将输出(此处没有建议)mv到新目录。我试过这个(我试图尽可能简单,没有任何循环......
convert -resize 500x500 * ../test2/ #output was 2 files named -0 -1 in the new dir
mogrify -resize 200x150 ~/Pictures/rome/test/*.jpg -path ~/Pictures/rome/test2/ # gotta *.jpg in new dir YAY!
mogrify -resize 200x150 -path ~/Pictures/rome/test2/*.jpg ~/Pictures/rome/test/*.jpg # blob error
联机帮助页没有提到输出到新目录,我搜索了一下。 ImageMagick的异常代码是here祝你好运并为错误的凿孔道歉。如果我发现任何新内容,我会编辑。