【问题标题】:How to overlay an image on top of another image using iMagick如何使用 iMagick 将图像叠加在另一个图像之上
【发布时间】:2015-06-24 06:33:26
【问题描述】:

概述:

我有两张图片。 1920x1080p分辨率的背景图和小于1920x1080p任意分辨率的叠加图。

背景图片(1920x1080):

叠加图片:(任何尺寸小于

结果图片(1920x1080):

我正在尝试将叠加图像准确地叠加在背景图像的中心。我知道如何使用 ImageMagick 来做到这一点。

使用 ImageMagick 的解决方案:

convert -composite -gravity center background.png overlay.png result.png

说明:

我期待在Imagick::compositeImagegravity center 的帮助下使用iMagick 做同样的事情。所以请任何人都可以在这里帮助我。

【问题讨论】:

标签: imagemagick imagick


【解决方案1】:

Imagick 封装了 C-API MagickWand,它不会自动继承 -composite -gravity 行为。你需要自己做数学。

$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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-28
    • 2022-01-11
    • 2011-01-10
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    相关资源
    最近更新 更多