【发布时间】:2014-03-12 02:18:02
【问题描述】:
我有两个 PNG 文件,我需要将一个放在另一个之上。第一张图片,红色的,是背景,第二张,绿色的,需要覆盖在红色背景图片之上。
我将如何在 PHP 环境中动态创建这个单一图像?
【问题讨论】:
标签: php image imagemagick image-manipulation
我有两个 PNG 文件,我需要将一个放在另一个之上。第一张图片,红色的,是背景,第二张,绿色的,需要覆盖在红色背景图片之上。
我将如何在 PHP 环境中动态创建这个单一图像?
【问题讨论】:
标签: php image imagemagick image-manipulation
最简单的方法可能是使用 GD 图像库函数。
您必须使用imagecreatefrompng 函数创建两个图像资源(每个图像一个)。然后使用imagecopy 函数将一个复制到另一个,该函数允许您指定到坐标和从坐标。 (或者,如果您还需要调整叠加图像的大小,请使用imagecopyresampled。)最后,使用imagepng 函数保存主图像资源。最后一个可以保存到磁盘或直接在浏览器中输出。
这些函数的 PHP 手册有很多很好的例子。
【讨论】:
只需在 PHP 中使用 Imagick::compositeImage。
// php
$background = new Imagick('red.png');
$foreground = new Imagick('green.png');
$background->compositeImage($foreground,Imagick::COMPOSITE_ATOP,50,50);
$background->writeImage('output.png');
我们直接执行Imagemagick commands
# CLI
convert red.png green.png -gravity south -geometry +0+30 -composite output.png
【讨论】: