PHP Imagick中的setGravity函数在使用compositeImage()函数时无效。

7
我正在使用php Imagick类进行项目开发。
我试图通过改变图像的重心来合成一张图片。
我的意思是,我想将目标图像合成到中间或顶部中心位置。
我使用的是:
....
$imageOrg->setGravity(imagick::GRAVITY_CENTER); //I wrote this for an example, position will be set by the visitor
$imageOrg->compositeImage($over, Imagick::COMPOSITE_DEFAULT, 0, 0);
....

但是setGravity()或setImageGravity()函数都无法正常工作。
请帮忙!

可能是Imagick: 在 Imagick 对象上设置重力的重复问题。 - azerafati
1个回答

14
$imageOrg->compositeImage($over, Imagick::COMPOSITE_DEFAULT, (((($imageOrg->getImageWidth()) - ($over->getImageWidth())))/2), (((($imageOrg->getImageHeight()) - ($over->getImageHeight())))/2));
基本上你所做的是将图像的左偏移设置为容器的宽度减去组合图像的宽度再除以二,这样就足以水平居中。然后你对高度做完全相同的操作,就可以垂直居中了。
我遇到了同样类型的问题,我最好的猜测是重力设置只适用于绘图上下文,即文本、注释等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接