Linux 批处理(gimp、imagemagick)将背景图像添加到一系列透明 png

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

是否可以为一系列透明 png 添加不同的背景图像?

喜欢:转换 sourceimage.png -背景 BackgroundPicture -flatten destinationimage.png

当然应该将背景图像降低到框架的底部。

提前致谢

ImageMagick 的 convert 不是正确的工具。请改用 ImageMagick 的 coomposite。如果所有图像的大小都相同,这很简单:

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

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

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

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

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

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

http://www.imagemagick.org/Usage/basics/#mogrify and http://www.imagemagick.org/Usage/basics/#mogrify_compose

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

mogrify -format png -gravity center -draw "image dst_over 0,0 0,0 'path2/background.png'" *.png