如何合并两个图像并保存在PHP?

时间:2012-06-12 11:03:32

标签: php merge

我在php中创建一个应用程序,我在其中上传图像并调整大小并将其放在咖啡杯上。咖啡杯是div的背景图像。现在我想将两个图像保存为单个图像,它看起来像一个咖啡杯的屏幕截图,上面印有图像。如何在其上截取只有马克杯和图像的屏幕截图,或者是否有其他方式在php中进行。

2 个答案:

答案 0 :(得分:2)

你需要一个图像库。许多服务器上的大多数PHP版本都预编译了GD。这是一个有限且效果不佳的图书馆,因此大多数人都会使用Imagemagick

在GD中:

$mug = imagecreatefrompng('mug.jpg');
$overlay = imagecreatefromjpeg('photo.png');

imagecopy($mug, $overlay);

在Imagemagick中:

$mug = new Imagick("mug.jpg");
$overlay = new Imagick("logo.png");
$composition = new Imagick();

$composition->compositeImage($mug);
$composition->compositeImage($overlay);

答案 1 :(得分:1)

您可以使用GD2库执行此操作:

<?php

  $image = imagecreatefromstring(file_get_contents($image_path);
  $coffe_mug= imagecreatefromstring(file_get_contents($coffe_mug_path));

  // merge the two
  imagecopymerge($image, $coffe_mug, 10, 10, 0, 0, 100, 47, 75);

  // save, can also be imagepng, imagegif, etc, etc
  imagejpeg($image, '/path/to/save/image.png');

  ?>

您还可以将图像输出到浏览器,以获取更多信息检查:http://php.net/manual/es/function.imagecopymerge.php