ImageMagick@filename引用多个输出



我在ImageMagick的文档中看到,我可以使用类似magick @myfiles.txt的东西向输入发送多个文件名(在我的情况下,我不能使用globbing,因为它们是随机的(,但唯一可用的示例将它们组合成一个输出。

有没有一种方法可以使用此功能为每个输入输出单独的文件?如果没有,如何在Powershell中实现这一点?类似Get-content filenames.txt | ForEach-Object {magick}的东西?

我还没有测试过,所以在尝试之前,请在临时目录中复制一些文件。

制作一个名为RESULTS的输出目录,并调整files.txt中列出的一堆文件的大小

mkdir RESULTS
magick mogrify -resize 64x64 -path RESULTS @files.txt

使用mogrify要非常小心,如果不指定-path,它会非常非常快地覆盖很多文件。

如果您的ImageMagick命令很简单,并且命令行中只有一个图像,那么您可以使用magik mogrify来处理文件夹中的每个图像。否则,您可以使用-set-filename在magik命令行中使用多个输入/输出图像的文件名。但是,如果您有太多的输入图像,那么您将耗尽RAM,因为ImageMagick在magick命令中一次加载所有输入图像。magick mogrify一次读一个。对于magik命令,您可以执行

magick @myfiles.txt -set filename:fn "%t" <commands> +adjoin "%[filename:fn]_processed.suffix"

%t获取不带后缀的文件名。看见https://imagemagick.org/script/escape.php

另请参阅https://archive.imagemagick.org/Usage/basics/#mogrify

对不起,我不了解Powershell。

最新更新