将两个图像*在PHP中创建*合并为一个

时间:2014-11-28 20:22:30

标签: php image merge

我有以下PHP脚本输出/显示为PNG / PHP图像:

-image.php

-background.php

我希望能够打开第三个脚本" main.php"它显示image.php重叠到background.php

我尝试过使用常用方法:

    <?php

$url1="image.php"
$url2="background.php";

$dest = imagecreatefrompng($url1);
$src = imagecreatefromjpeg($url2);


imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100);

header('Content-Type: image/png');
imagepng($dest);

imagedestroy($dest);
imagedestroy($src);

?>

但这没效果(大概是因为cource图像是php)。

关于如何合并这两个图像的任何想法?提前致谢

3 个答案:

答案 0 :(得分:0)

你需要向php解释它需要执行image.php而不是以'raw'形式包含它。 我能想到的最简单的方法是使用curl_init或file_get_contents之类的东西,并将完整的URL添加到php脚本中,以便通过http打开文件并要求Web服务器为您执行。

所以将代码更改为:

<?php

$url1= file_get_contents("http://example.com/image.php");
$url2= file_get_contents("http://example.com/background.php");

$dest = imagecreatefrompng($url1);
$src = imagecreatefromjpeg($url2);


imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100);

header('Content-Type: image/png');
imagepng($dest);

imagedestroy($dest);
imagedestroy($src);

?>

HTH,

bovako

答案 1 :(得分:0)

您应该尝试使用include来阅读文件内容,然后使用imagecreatefromstring来创建图片:

<?php

$handle = imagecreatefromstring(include('image.php'));

答案 2 :(得分:0)

谢谢,它现在似乎正在运作。我必须将imagecreate函数从png / JPEG更改为string(如下所示):

再次感谢!让我的思绪变得疯狂     

$url1= file_get_contents("http://example.com/image.php");
$url2= file_get_contents("http://example.com/background.php");

$dest = imagecreatefromstring($url1);
$src = imagecreatefromstring($url2);


imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100);

header('Content-Type: image/png');
imagepng($dest);

imagedestroy($dest);
imagedestroy($src);

?>