概述:
我有两张照片。具有1920x1080p分辨率的背景图像和可以具有低于1920x1080p的任何分辨率的叠加图像。
背景图片(1920x1080):
叠加图片:(任意尺寸减去< = 1920x1080)
结果图片(1920x1080):
我正在尝试将叠加图像精确地叠加在背景图像的中心。我知道如何使用ImageMagick来做到这一点。
使用ImageMagick的解决方案:
convert -composite -gravity center background.png overlay.png result.png
Expextation:
我希望在Imagick::compositeImage
和gravity center
的帮助下使用iMagick做同样的事情。所以,任何人都可以帮助我。
答案 0 :(得分:4)
Imagick包装了不会自动继承-composite -gravity
行为的C-API MagickWand。你需要自己做数学。
$background = new Imagick( __DIR__ . DIRECTORY_SEPARATOR . '6pEEG.png');
$window = new Imagick(__DIR__ . DIRECTORY_SEPARATOR . 'mpyY3.png');
$deltaX = $background->getImageWidth() - $window->getImageWidth();
$deltaY = $background->getImageHeight() - $window->getImageHeight();
$background->compositeImage($window,
Imagick::COMPOSITE_ATOP,
$deltaX / 2,
$deltaY / 2);