Imagick - 通过PHP复合图像蒙版

时间:2014-09-24 21:14:50

标签: php imagick composite

我试图重新创建一个使用ImageMagick命令的脚本"转换"撰写图像。但我想在PHP中使用Imagick做同样的事情:

convert ./a.png ./b.png ./c.png  -virtual-pixel transparent -channel rgba -alpha on -background transparent -define compose:args=300x53.033 -compose displace -composite ./final.png

a.png

Original

b.png

Overlay

c.png

Mask

结果:

Result obtained though command line

a.png是基本图片,b.png是叠加层,c.png是灰度'掩码'。为了实现这个结果,我要执行扩展支持的所有操作,将映像写入磁盘,然后通过exec函数执行此命令,这是一个糟糕的解决方法。

以下代码段不起作用:

$a = new Imagick('../a.png');
$b = new Imagick('../b.png');
$c = new Imagick('../c.png');

$a->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$a->setImageBackgroundColor(new ImagickPixel('none'));
$a->setOption('compose:args', '300x53.033');
$a->compositeImage($c, Imagick::COMPOSITE_DSTIN, 0, 0, Imagick::CHANNEL_ALPHA);
$a->compositeImage($b, Imagick::COMPOSITE_DISPLACE, 0, 0);

结果:

Result obtained though PHP

预期:

Result obtained though command line

我想仅使用Imagick PHP实现相同的结果。

0 个答案:

没有答案