Linux batch (gimp, imagemagick) add background image to series of transparent pngs

时间:2017-06-15 10:02:13

标签: batch-file imagemagick gimp

is it possible to add a different background image to a series of transparent pngs?

Like: convert sourceimage.png -background BackgroundPicture -flatten destinationimage.png

Of course the background image should be lowered to bottom of the frames.

Thanks in advance

2 个答案:

答案 0 :(得分:0)

ImageMagick的convert不是正确的工具。请改用ImageMagick的coomposite。如果所有图像的大小相同,则只需:

composite -compose atop Foreground.png Background.png Final.png

答案 1 :(得分:0)

实际上转换比复合更好。复合材料陈旧且不太灵活。 ImageMagick中具有透明度和不透明背景图像的前景图像的转换语法将为

^

如果将所有背景图像放在一个文件夹中(例如test1),也可以将相同的前景图像应用于许多背景图像。将前景图像保留在该文件夹之外,除非其后缀与文件夹中的所有文件不同。然后创建一个新文件夹(比如test2)来保存结果。然后使用带有alpha合成的mogrify来处理所有文件。

convert backgroundimage.png foregroundimage.png -compose over -composite result.png

其中path2是指定文件夹或文件的实际路径。

请参阅http://www.imagemagick.org/Usage/basics/#mogrifyhttp://www.imagemagick.org/Usage/basics/#mogrify_compose

如果将所有前景图像放入一个文件夹(test1)并执行以下操作,您可以采用另一种方式将不同的前景图像放到给定的背景图像上:

cd path2/test1
mogrify -format png -path path2/test2 -gravity center -draw "image over 0,0 0,0 'path2/foreground.png'" *.png