我正在尝试使用 Windows 10 中的命令提示符对 ImageMagick 中的一批文件运行循环。作为单个图像的示例,我在 IM 中使用的命令是
magick composite -geometry +5+10 imageA.png background.png
当我单独处理图像时,这效果很好。
但是,我有一批 700 多个图像(我们称它们为 imageA.png
、imageB.png
、imageC.png
, imageD.png
),我想将它们中的每一个覆盖到 background.png
上。我尝试使用以下代码:
FOR %i IN (1) DO magick composite -geometry +5+10 *.png background.png %i_composite.png
这会生成一个图像的输出,每个图像相互叠加。我想要做的是,对于目录 %i
中的每个 *.png
图像,将其覆盖到 background.png
上并保存为扩展名filenumber_composite.png
。
仅供引用,当我尝试使用不同类型的转换(将图像的大小减小给定的%)时,循环会起作用,但当我使用composite
命令时,循环会失败。
最佳答案
你的“for”命令是错误的。尝试使用括号中的“*.png”...
FOR %i IN (*.png) DO magick composite -geometry +5+10 %i background.png %i_composite.png
这意味着对于 *.png 组中的每个文件,使用“%i”执行以下操作,该操作代表按顺序排列的每个 .png 文件。
关于imagemagick - 在 ImageMagick 的循环中使用复合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60297971/