PHP Imagick setImageOpacity 破坏透明度并且不执行任何操作

发布于 2024-09-15 06:24:21 字数 299 浏览 6 评论 0原文

事情是这样的。

我在 PHP 中有一个关于透明图像的简单片段,如下所示:

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

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

好吧,输出是黑色图像,它应该是透明的,并且图像不透明度完全相同。

这与配置有关还是我遗漏了什么?

先感谢您

Here's the thing.

I hava a simple snippet in PHP like this regarding a transparent image:

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

The file output should be a transparent image with lower opacity, right?

Well, the output is an image with black color where it was supposed to be transparent and the image opacity is exactly the same.

Does it have to do with configuration or am i missing something?

Thank you in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伴我心暖 2024-09-22 06:24:21

不幸的是 setImageOpacity 会影响整个图像,因此要使透明区域保持透明,请将以下内容替换

$im->setImageOpacity(0.3); 

为:

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

Unfortunately setImageOpacity affects the whole image, so to leave the transparent areas transparent replace the following:

$im->setImageOpacity(0.3); 

with :

$im->evaluateImage(Imagick::EVALUATE_MULTIPLY, 0.3, Imagick::CHANNEL_ALPHA);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文