Imagick 相当于 imagemagick 命令,用于合并具有透明度的图像

Imagick equivalent to imagemagick command for merging images with transparency

imagemagick: convert image1.png image2.png -background transparent image3.png image4.png -layers flatten new.png

有效。 基本上,它将 4 个 png 合并为层,image2 是最大的,所有 png 都具有透明度。

我在 Imagick 中找不到任何等效的命令。

像这样:

#!/usr/local/bin/php
<?php

    $i1 = new Imagick("1.png"); 
    $i2 = new Imagick("2.png"); 

    $i1->compositeImage($i2,Imagick::COMPOSITE_DEFAULT,0,0); 
    $i1->writeImage('result.png');

    // Flatten those puppies - if required
    $i1->flattenImages(); 
    $i1->writeImage('result_flat.png');
?>

如果我这样创建图像:

# Red -> transparent gradient
convert -size 128x128 gradient:"rgba(255,0,0,0)-rgba(255,0,0,1)" 1.png

# Blue -> transparent gradient
convert -size 128x128 gradient:"rgba(0,0,255,0)-rgba(0,0,255,1)" -rotate 90 2.png

然后我可以将它们与上面的代码合并,我得到了这个: