如何使用命令行将图像(透明 PNG 文件)覆盖在目录中的所有“背景”图像上?

5 command-line convert png image-processing

我有一个透明的PNG文件(牛的图片)

我有一个文件夹,其中包含草地、山脉、河流等图像。

我想仅使用 Linux 命令行将牛图像叠加到这些背景图像上。

小智 5

convertImageMagick包中的工具

您可以使用ImageMagick 分层merge进行图像

IE:

convert -page +0+0 grass.jpg \
    -page +256+0 clouds.jpg \
    -page +512+0 cow1.png \
    -background none -layers merge +repage merged.jpg
Run Code Online (Sandbox Code Playgroud)

批量处理convert多个图像

假设您有两个图像: 1.grass.jpg作为第一张图像 2. 和cow1.jpgcow2.jpg作为要合并的第二张图像

所以,你的bash脚本是:

for image in cow*.jpg; do
  convert -page +0+0 grass.jpg \
    -page +100+100 $image \
    -background none -layers merge +repage $image-merged.jpg
done
Run Code Online (Sandbox Code Playgroud)