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