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
然后我可以将它们与上面的代码合并,我得到了这个:
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
然后我可以将它们与上面的代码合并,我得到了这个: