PHP Imagick setImageOpacity破坏透明度并且什么都不做

Fot*_*tis 10 php png transparency image-manipulation imagick

这就是事情.

关于透明图像,我在PHP中使用了一个简单的代码片段:

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

文件输出应该是透明图像,不透明度较低,对吧?

嗯,输出是一个黑色的图像,它应该是透明的,图像不透明度是完全相同的.

是否与配置有关或我错过了什么?

先感谢您

Pau*_*aul 32

不幸的是setImageOpacity会影响整个图像,所以要保持透明区域的透明替换$ im-> setImageOpacity(0.3); 用:

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