叠加两组图像

Superpose two sets of images

我在文件夹A和文件夹B中有两组图像。它们共享相同的文件名。例如。我在两个文件夹中都有 Image01 和 Image02。

我需要将文件夹A中的Image01叠加到文件夹B中的Image 01上,依此类推。有没有一种方法可以使用 ImageMagick 或批处理自动执行此操作?

假设您的环境是 Mac OSX 或 Linux 或 Unix...

那么你可以这样做:

for img in A/* ; do        \
   convert                 \
      A/${img}             \
      B/$(basename ${img}) \
     -gravity center       \
     -compose blend        \
     -composite            \
     -alpha set            \
      composed.png         \
done

现在你要明白了:你的需求描述的非常非常不明确。还有一些问题:

  • 各个图像的 width/height 尺寸是否相同?
  • 它们的文件格式相同吗?他们使用 transparency/alpha 频道吗?
  • 您希望叠加如何工作?

很多种不同的方法来叠加两个图像。要查看完整列表,请查看此命令的输出:

convert -list compose

在我的安装中显示了 67 种不同的方法:

Atop Blend Blur Bumpmap ChangeMask Clear ColorBurn ColorDodge Colorize CopyBlack CopyBlue CopyCyan CopyGreen Copy CopyMagenta CopyOpacity CopyRed CopyYellow Darken DarkenIntensity DivideDst DivideSrc Dst Difference Displace Dissolve Distort DstAtop DstIn DstOut DstOver Exclusion HardLight HardMix Hue In Lighten LightenIntensity LinearBurn LinearDodge LinearLight Luminize Mathematics MinusDst MinusSrc Modulate ModulusAdd ModulusSubtract Multiply None Out Overlay Over PegtopLight PinLight Plus Replace Saturate Screen SoftLight Src SrcAtop SrcIn SrcOut SrcOver VividLight Xor

我上面的示例命令仅使用其中之一,-compose blend

您需要尝试不同的构图方法,看看哪一种符合您的想法。这是一个小插图,向您展示了将某些方法应用于两个非常简单的形状时的工作原理:

开始之前,您可以查阅并阅读一些不同方法的效果: