gpt4 book ai didi

php - 复合透明图像上的 Imagick 运动模糊

转载 作者:行者123 更新时间:2023-12-04 05:09:36 26 4
gpt4 key购买 nike

我正在尝试组合多个现有图像的图像,并对其应用运动模糊。我正在使用透明 Canvas 来绘制所有图像。结果如下:enter image description here

如您所见,模糊部分不会离开单个图像的非透明部分。我怎么能让它们在这些部分之外变得模糊?

更新:
这也是我所说的模糊边缘的意思:

enter image description here

这是我的代码:

header("Content-Type: image/png");

$images = array("a.png","b.png","c.png");

$canvas = new Imagick();
$canvas->newImage(128*3, 128, new ImagickPixel("rgba(0,0,0,0)"));
$canvas->setImageFormat("png");

for($i=0; $i<count($images); $i++)
{
$img = new Imagick($images[$i]);
$canvas->compositeimage($img, Imagick::COMPOSITE_DEFAULT, $i*128, 0);
}
$canvas->motionblurimage(100, 40, 90);

echo $canvas;

感谢您提供任何帮助或指示如何解决此问题!

最佳答案

尝试为 channel 添加参数:

$canvas->motionblurimage(100, 40, 90, Imagick::CHANNEL_ALL);

我认为默认 channel 设置使效果仅限于非透明部分。

当我使用那条确切的线条时,图像变得非常模糊 - 可能比您想要的更模糊。前两个值可能需要减少,甚至可能减半。

关于php - 复合透明图像上的 Imagick 运动模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15042825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com