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

时间:2015-01-27 23:51:57

标签: php imagemagick imagick

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

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

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

1 个答案:

答案 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

enter image description here

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

enter image description here

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

enter image description here