我在使用 Imagick PHP 扩展生成图像时遇到了一些问题。一切工作正常,除了我的以下“蒙太奇”有白色背景,因此我不能将其覆盖在其他东西之上。如何生成具有透明背景的蒙太奇?
$Montage = $Icons->montageImage(new imagickdraw(), "3x2+0+0", "34x34+3+3", imagick::MONTAGEMODE_UNFRAME, "0x0+0+0");
$Canvas->compositeImage($Montage, $Montage->getImageCompose(), 5, 5);
Thanks!!
我知道这是一个老问题,但我找到了另一种方法来使用 Imagick 的 montageImage 函数来做到这一点。创建 Imagick 对象后,必须将背景声明为透明,如下所示:
$Icons->setBackgroundColor( new ImagickPixel('transparent') );
设置完成后,您可以通过 montageImage 运行该对象,这将创建一个具有透明背景的 montageImage:
$Montage = $Icons->montageImage(new imagickdraw(), "3x2+0+0", "34x34+3+3", imagick::MONTAGEMODE_UNFRAME, "0x0+0+0");
然后,您可以将新的蒙太奇图像添加到合成图像中,确保使用预定义的 Imagick 合成常量 COMPOSITE_ATOP 或您所需的常量,如下所示:
$Canvas->compositeImage($Montage, imagick::COMPOSITE_ATOP, 5, 5);
刚刚遇到这个问题,并决定发布另一个解决方案,以防其他人想要另一种无需手动循环的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)