PHP Imagick setImageOpacity разрушает прозрачность и ничего не делает - PullRequest
9 голосов
/ 22 августа 2010

Вот в чем дело.

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

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

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

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

Это связано с конфигурацией или я что-то упустил?

Заранее спасибо

1 Ответ

32 голосов
/ 30 августа 2010

setImageOpacity, к сожалению, влияет на все изображение, поэтому чтобы оставить прозрачные области прозрачными, замените $ im-> setImageOpacity (0.3);с:

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

...