如何将多个文件名传递给ImageMagick?

时间:2017-04-13 17:00:46

标签: windows command-line imagemagick

为了将多个图像平均化,通配可以正常工作:

magick convert -average *.png out.png

但是如何在Windows命令行中指定多个输入图像,而不使用globbing? (最终目标是制作一个批处理文件,以便我可以选择多个图像,然后使用SendTo菜单将它们合并,%*将收到"C:\...filename.png" "C:\...file2.png" "C:\...something.png"。)

1 个答案:

答案 0 :(得分:2)

有几种选择......

选项1

您可以在命令行上枚举文件:

magick fred.png bill.png tina.png -average result.png

我没试过这个,但是从你的问题来看,以下内容应该可以正常工作,因为它直接等同于上面的例子:

magick %* -average result.png

选项2

您可以在文件中写入文件名并传递其名称,因此如果filelist.txt包含:

image1.png
image2.png
image3.png

然后运行:

magick @filelist.txt -average result.png

选项3

您可以在stdin上将文件名列表发送到 ImageMagick

echo "file1.png\nfile2.png\file3.png" | magick @- -average result.png

不确定如何在BATCH中执行换行 - 但上面的\n是换行符!

也许是:

( echo file1.png & echo file2.png & echo file3.png ) | magick @- -average result.png

自v7以来,convert实际上是隐式假设的 - 如果您执行magick identify ...magick mogrify ...magick compose ...等,则只需指定旧版命令。