ImageMagick的: convert image1.png image2.png -background transparent image3.png image4.png -layers flatten new.png
的工作原理。 基本上,它将4个png作为图层合并,image2是最大的,所有png都具有透明度。
我在Imagick中找不到任何等效的命令。
答案 0 :(得分:0)
像这样:
#!/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
然后我可以将它们与上面的代码合并,我得到了这个: