Я использую ImageMagick 7 вместе с PHP 5.6.30 и PECL Imagick 3.4.3.
Используя приведенный ниже код, я пытаюсь наложить прозрачный PNG на 50% поверх изображения JPEG. Результатом являются наложения изображений PNG, но без прозрачности.
Есть идеи?
<?php
$im = new Imagick('base.jpg');
$wm = new Imagick('watermark.png');
$wm->setImageAlpha(0.5);
$im->compositeImage($wm, Imagick::COMPOSITE_COPYOPACITY, 0, 0);
$im->writeImage('final.jpg');
?>
Кажется, это работает для меня:
<?php
$im = new Imagick('base.jpg');
$wm = new Imagick();
$wm->setBackgroundColor(new ImagickPixel('transparent'));
$wm->readImage('watermark.png');
$wm->setImageFormat('png32');
$wm->setImageAlpha(0.5);
$im->compositeImage($wm, Imagick::COMPOSITE_OVER, 0, 0);
$im->writeImage('final.jpg');
?>
Других решений пока нет …