php imagick setGravity функция не работает с функцией compositeImage()


Я использую класс 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() не работают.

Пожалуйста, помогите!

1 6

1 ответ:

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

В основном то, что вы делаете, - это устанавливаете левое смещение вашего изображения на ширину контейнера, минус ширина вашего составного изображения, разделенная на два, это будет достаточно смещать его по центру горизонтально. Затем вы делаете то же самое для высоты, и она центрируется вертикально.

У меня была такая же проблема, лучше всего я могу понять, что настройки гравитации применяются только к контекстам рисования, т. е.: текст, аннотации