2012-08-12 38 views
5

工作我使用PHP Imagick類項目PHP imagick setGravity功能不compositeImage()函數

我嘗試合成圖像改變圖像的重心

我的意思是,我想合成目標圖像中間或頂端中心

我用

.... 
$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()功能不起作用。

請幫忙!

+0

的可能的複製[Imagick:設置重力對Imagick項目(HTTP:/ /stackoverflow.com/questions/5820754/imagick-setting-the-gravity-on-a-imagick-item) – azerafati 2015-12-01 11:36:27

回答

8
$imageOrg->compositeImage($over, Imagick::COMPOSITE_DEFAULT, (((($imageOrg->getImageWidth()) - ($over->getImageWidth())))/2), (((($imageOrg->getImageHeight()) - ($over->getImageHeight())))/2)); 

基本上你正在做的是設置在左側的圖像偏移到Container的寬度,減去你的合成圖像的寬度除以2,這將抵消它足夠的水平居中。然後你對高度做同樣的事情,並且它垂直居中。

我有同樣類型的問題,最好的我可以計算重力設置僅適用於繪圖環境,即:文本,註釋