【问题标题】:Imagick motion blur on composite, transparent image复合透明图像上的 Imagick 运动模糊
【发布时间】:2013-02-23 16:34:45
【问题描述】:

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

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

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

这是我的代码:

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;

感谢任何帮助或指导如何解决这个问题!

【问题讨论】:

  • 我不确定我理解你想要什么样的效果。你的意思是你想让边缘也模糊吗?类似于此页面上的第 8 步:webdesign.org/photoshop/text-effects/motion-blur.5059.html 但可能不那么极端?
  • 这正是我想要做的。抱歉,如果不清楚,我会更新问题。

标签: php imagemagick imagick


【解决方案1】:

尝试为通道添加参数:

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

我认为默认通道设置使效果仅限于不透明的部分。

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

【讨论】:

    猜你喜欢
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 2016-11-25
    • 2016-02-26
    • 2014-08-12
    • 1970-01-01
    • 2015-04-16
    相关资源
    最近更新 更多