php-imagine:如何使水印半透明(降低不透明度)?

问题描述 投票:0回答:1

我正在使用 https://github.com/php-imagine/Imagine (如

use Imagine\Imagick\Imagine
)来处理我的图像。我正在应用透明(alpha 通道)PNG 图像作为水印,遵循此处的文档 https://imagine.readthedocs.io/en/stable/usage/introduction.html#image-watermarking :

$watermark = $imagine->open('/my/watermark.png');
$image     = $imagine->open('/path/to/image.jpg');
$size      = $image->getSize();
$wSize     = $watermark->getSize();

$bottomRight = new Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight());

$image->paste($watermark, $bottomRight);

它可以工作,但我想降低水印的不透明度,这样就不会那么碍眼了。

我尝试通过 https://imagine.readthedocs.io/en/stable/search.html 搜索文档,但似乎不起作用。

php imagick php-imagine
1个回答
0
投票

查看代码

paste()
方法似乎内置了一个alpha参数:

public function paste(ImageInterface $image, PointInterface $start, $alpha = 100)

由于参数是可选的,并且您在示例中没有覆盖,因此您将获得默认值 100。要覆盖,只需为第三个参数显式提供一个小于 100 的值:

$image->paste($watermark, $bottomRight, 25);
© www.soinside.com 2019 - 2024. All rights reserved.