如何合并两个图像并保存在php中


How to merge two images and save in php?

我正在用php创建一个应用程序,在其中上传图像并调整其大小并将其放在咖啡杯上。咖啡杯是一个div的背景图像。现在我想将两个图像保存为单个图像,它看起来像一个印有图像的咖啡杯的屏幕截图。如何截取仅杯子和图像的屏幕截图,或者是否有另一种方法可以在php中执行此操作。

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

在广东:

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

您可以使用 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。