0

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

4

2 回答 2

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);
于 2012-06-12T11:11:19.830 回答
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

于 2012-06-12T11:12:26.613 回答