我试图重新创建一个使用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
b.png
c.png
结果:
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);
结果:
预期:
我想仅使用Imagick PHP实现相同的结果。