我尝试重新创建一个使用
ImageMagick命令“convert”来构成图像的脚本.但是我想使用Imagick(版本6.6.2-10)在
PHP中执行相同操作.
命令如下:
convert A1.mpc A3.mpc A4.mpc -channel rgba -alpha on -virtual-pixel background -background none -define compose:args=312x26.6776 -compose displace -composite out.mpc
我发现这些参数代表以下几点:
convert {background} {overlay} [{mask}] [-compose {method}] -composite {result}
PHP Imagick给了我一个撰写方法,但没有mask参数:http://www.php.net/manual/en/imagick.compositeimage.php
我发现another question尝试这个(但不会导致相同的图像):
// load images $a1 = new Imagick('a1.png'); $a3 = new Imagick('a3.png'); $a4 = new Imagick('a4.png'); // mask the overlay $a1->compositeImage($a4,Imagick::COMPOSITE_DSTIN,Imagick::CHANNEL_ALPHA); // compose overlay to background $a1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_BACKGROUND); $a1->setImageBackgroundColor(new ImagickPixel('none')); $a1->setOption('compose:args','312x26.6776'); $a1->compositeImage($a3,Imagick::COMPOSITE_DISPLACE,0);
所以我的问题是:这是使用面具组合图像的正确方法吗?还是这里有什么问题?
为了帮助可视化我想要做的,这里有一些输入图像:
输入图像a1(背景):
输入图像a3(覆盖):
输入图像a4(蒙版):
我想要的结果是:
提前致谢!
迈克尔
尝试使用compositeImage方法和Imagick :: COMPOSITE_COPYOPACITY