首页 > 解决方案 > 在 ImageMagick 的循环中使用复合

问题描述

我正在尝试使用 Windows 10 中的命令提示符对 ImageMagick 中的一批文件运行循环。作为单个图像的示例,我将在 IM 中使用的命令是

 magick composite -geometry +5+10 imageA.png background.png

当我单独处理图像时,这很好用。

但是,我有一批 700 多张图像(我们称它们为imageA.pngimageB.pngimageC.pngimageD.png),我想将它们中的每一个覆盖到background.png. 我尝试使用以下代码:

 FOR %i IN (1) DO magick composite -geometry +5+10 *.png background.png %i_composite.png

这会生成一个图像的输出,每个图像都相互叠加。我想要做的是,对于*.png目录中的每个图像,将其%i覆盖到background.png并使用扩展名保存filenumber_composite.png

对于信息,当我尝试使用不同类型的转换(将图像的大小减小给定的百分比)时,循环有效,但在我使用composite命令时失败。

标签: imagemagick

解决方案


你的“for”命令是错误的。用括号中的“* .png”试试这个......

FOR %i IN (*.png) DO magick composite -geometry +5+10 %i background.png %i_composite.png

这意味着对于 *.png 组中的每个文件,使用 "%i" 执行以下操作,它依次表示这些 .png 文件中的每一个。


推荐阅读