imageMagick从Linux中的文件夹转换为另一个命令?

时间:2012-10-10 03:18:29

标签: linux imagemagick

我在同一级目录下有两个文件夹 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。

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

2 个答案:

答案 0 :(得分:11)

有两种方法可以解决它。

  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
    
  3. 前一种选择可能更好,但后者可能更清楚。

答案 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祝你好运并为错误的凿孔道歉。如果我发现任何新内容,我会编辑。