image.png -layers.
работает. По сути, он объединяет 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
Затем я могу объединить их с указанным выше кодом, и я получаю следующее: