4

我在同一级别的目录文件夹 1 和文件夹 2 下有两个文件夹,现在我尝试将文件夹 1 中的所有图像转换为文件夹 2 并具有相同的文件名。这是我现在拥有的:

 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。

我知道它的目录问题,但谷歌两天已经不知道如何解决它。你能帮我解决这个问题吗?

4

2 回答 2

12

有两种方法可以处理它。

  1. 使用mogrify

    mogrify -path folder2 -thumbnail 50x50 folder1/*.jpg
    
  2. 使用basename

    for filename in folder1/*.jpg; do
        basename="$(basename "$filename" .jpg)"
        convert "folder1/$basename.jpg" -thumbnail 50x50 "folder2/$basename.jpg"
    done
    

前一个选项可能更好,但后者可能更清楚。

于 2012-10-10T04:30:59.517 回答
0

我发布了几个错误的答案。抱歉,我只是假设 mogrify 或 convert 在输出到不同路径时表现良好。不应该假设。我不知道 Imagemagick 是否可以输出到不同的目录。您可能只需要将输出(此处没有建议)移动到新目录。我试过这个(我试图尽可能简单,没有任何循环......

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 的异常代码在这里祝你好运,对错误的凿孔感到抱歉。如果我发现任何新内容,我会进行编辑。

于 2012-10-10T04:10:17.123 回答