【发布时间】:2017-02-24 03:49:29
【问题描述】:
我正在使用 ImageMagick 7 以及 PHP 5.6.30 和 PECL Imagick 3.4.3。
使用下面的代码,我试图在 JPEG 图像上覆盖 50% 透明的 PNG。结果是 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');
?>
【问题讨论】:
-
我相信你想要的常量是
COMPOSITE_OVER。COMPOSITE_COPYOPACITY应该只从图像中复制不透明度通道,而不是整个图像保留不透明度。 -
使用 COMPOSITE_OVER 使图像透明但没有不透明度。有什么想法吗?