在另一个 GD 图像中添加 GD 图像

Add GD image inside another GD image

如何将使用 GD 创建的动态图像嵌入到使用 GD 生成的另一个动态图像中? 如果将两个文件分开,它们都可以正常工作,但是当我尝试在另一个文件中使用一个文件时,它不起作用。

图片 1:

<?php
header('Content-type: image/png');
$image1 = imagecreatefrompng('images/image1.png');

//add some texts to image 1

imagepng($image1);

imagedestroy($image1);
?>

图 2:

<?php
header('Content-type: image/png');
$image2 = imagecreatefrompng('images/image2.png');

//add some texts to image 2

imagepng($image2);

imagedestroy($image2);
?>

现在,如果我尝试在 image1.php 中使用 image2.php 中生成的图像:

<?php
header('Content-type: image/png');
$image1 = imagecreatefrompng('images/image1.png');
$image2 = imagecreatefromgd('image2.php');

//add some texts to image1
imagecopy($image1, $image2, $x, $y, $src_x, $src_y, $src_w, $src_h);

imagepng($image1);

imagedestroy($image1);
imagedestroy($image2);
?>

有什么想法吗?谢谢!

太棒了!!在测试了不同的解决方案之后,这是它的工作方式。基本上,所有使用 GD 生成的图像都必须在同一个文件中创建,以便仅将一张图像发送到浏览器:

<?php

header('Content-type: image/png');
$image1 = imagecreatefrompng('images/image1.png');
$image2 = createImage2();

//add some texts to image1
imagecopy($image1, $image2, $x, $y, $src_x, $src_y, $src_w, $src_h);

imagepng($image1);

imagedestroy($image1);
imagedestroy($image2);



function createimage2() {
    $image2 = imagecreatefrompng('images/image2.png');

    //add some texts to image 2
    return $image2
?>