Подтвердить что ты не робот

PHP Imagick setImageOpacity уничтожает прозрачность и ничего не делает

Вот вещь.

Я имею в виду простой фрагмент в PHP относительно прозрачного изображения:

$im = new Imagick('some-transparent-image.png');
$im->setImageOpacity(0.3);
$im->writeImage('output.png');

Выходной файл должен быть прозрачным с более низкой прозрачностью, не так ли?

Ну, выход представляет собой изображение с черным цветом, где он должен быть прозрачным, а непрозрачность изображения точно такая же.

Это связано с настройкой или я что-то не хватает?

Заранее благодарю

4b9b3361

Ответ 1

setImageOpacity unfortunately affects the whole image, so to leave the transparent areas transparent replace $im->setImageOpacity(0.3); with :

$im->evaluateImage(Imagick::EVALUATE_MULTIPLY, 0.3, Imagick::CHANNEL_ALPHA);