使用ImageMagick的文件名引用时出现“无法打开图像”错误

4
我正在使用ImageMagick从命令行进行一些图像处理,并希望按照foo.txt中指定的文件列表进行操作。从这里的说明http://www.imagemagick.org/script/command-line-processing.php中,我看到可以使用以@为前缀的文件名引用。当我运行类似以下命令时:

montage @foo.txt output.jpg

只要foo.txt在当前目录中,一切都按预期工作。但是,当我尝试通过运行以下命令访问不同目录中的bar.txt时:

montage /some_directory/@bar.txt output2.jpg

我得到:

montage: unable to open image /some_directory/@bar.txt: No such file or directory @ blob.c/OpenBlob/2480.

我认为问题出在我的语法上,但我不确定该怎么改变它。任何帮助将不胜感激。

3个回答

2

虽然这是一个比较老的问题,但很明显你需要在完整路径前加上 @ 符号:

montage @/some_directory/bar.txt output2.jpg

1
截至ImageMagick 6.5.4-7 2014-02-10版本,路径不支持@语法。@文件必须在当前目录中,并且仅通过名称进行标识。

0

我还没有尝试过指示IM从文件中提取文件列表,但我会像这样在命令行上指定多个文件:

gm -sOutputFile=dest.ext -f file1.ppm file2.ppm file3.ppm

你能将那个文件的内容提取到一个变量中,然后让 shell 展开这个变量吗?

我有很多不同目录下的文件(1K+)需要合并,因此我不想一个一个列出它们。我认为在文件中列出它们并指向该文件似乎是最合理的做法。 - ryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接