如何从两个PNG文件创建单个PNG?

时间:2014-03-11 16:48:07

标签: php image imagemagick image-manipulation

我有两个PNG文件,我需要将它们放在另一个上面。第一个图像,红色图像,背景,第二个图像,绿色图像,需要放在红色背景图像的顶部。

如何在PHP环境中动态创建此单个图像?

enter image description here

2 个答案:

答案 0 :(得分:1)

最简单的方法可能是使用GD图像库函数。

您必须使用imagecreatefrompng功能创建两个图像资源(每个图像一个)。然后使用imagecopy函数将一个复制到另一个函数中,该函数允许您指定从坐标和坐标。 (或者,如果您还需要调整重叠图像的大小,请使用imagecopyresampled。)最后,使用imagepng功能保存主图像资源。最后一个可以保存到磁盘或直接在浏览器中输出。

这些函数的PHP手册有很多很好的例子。

答案 1 :(得分:1)

只需在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