叠加两组图像

时间:2015-01-11 19:51:07

标签: imagemagick batch-processing

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

我需要从文件夹B中的文件夹A中的文件夹A叠加Image01,依此类推。有没有办法可以使用ImageMagick或批处理自动执行此操作?

1 个答案:

答案 0 :(得分:3)

假设您的环境是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

现在您必须了解:您的要求的描述非常非常不清楚。有些问题仍然存在:

  • 相同宽度/高度尺寸的相应图像?
  • 它们是否采用相同的文件格式?他们使用透明/ 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无覆盖PegtopLight PinLight Plus替换饱和屏幕SoftLight Src SrcAtop SrcIn SrcOut SrcOver VividLight Xor

我上面的示例命令只使用其中一个-compose blend

您需要尝试不同的合成方法,以查看哪一个符合您的想法。下面是一个小插图,向您展示了一些方法在应用于两个非常简单的形状时如何工作:

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