今天是个好日子。长话短说,我正在尝试制作一款类似于城市对手的在线纸牌游戏。为此,我主要使用 PHP 和 SQL。现在,我正在尝试基于数据库生成卡片的 png 文件。
我已经设法将图像与 alpha 通道合并,向图像添加文本,但我真正的问题是:我似乎无法将此图像与 HTML 文档的其他基本布局一起输出。这是我的测试代码:
<?php
include 'phpGDtools.php';
$image1path = 'monstercard.png';
$image2path = 'monsterimage.png';
$xdim = 220;
$ydim = 301;
//$image = mergeTwoPNGAndReturn($image1path, $image2path, $xdim, $ydim);
mergeTwoPNGAndOutputInBrowser($image1path, $image2path, $xdim, $ydim);
echo('Hello !');
?>
抱歉,格式不好,我无法让它变得更好:/这是我在 phpGDTools.php 中的函数:
function mergeTwoPNGAndOutputInBrowser($image1path, $image2path, $xdim, $ydim)
{
//TEST FUNCTION
//Both paths to the images, x and y dimensions of the image you're about to fuse.
$final_img = imagecreate($xdim, $ydim);
//Step 1 : Create the objects from the PNGs
$image_1 = imagecreatefrompng($image1path);
$image_2 = imagecreatefrompng($image2path);
//Step 1.2 : Allow transparency of bases.
imagealphablending($image_1, true);
imagesavealpha($image_1, true);
imagealphablending($image_2, true);
imagesavealpha($image_2, true);
//Step 2 : Merge the images into one.
imagecopy($image_1, $image_2, 0, 0, 0, 0, $xdim, $ydim);
imagecopy($final_img, $image_1, 0, 0, 0, 0, $xdim, $ydim);
//Step 3 : Allow transparency of final image.
imagealphablending($final_img, true);
imagesavealpha($final_img, true);
//Step 4 : Output image to browser.
header('Content-Type: image/png;');
imagepng($image_1);
}
正如预期的那样,这很好地输出了图像,但是文本“你好!” 无处可寻。另外,请忽略关于“$final_image”的部分,它只是为了测试。您可能已经注意到我评论了这一行:
//$image = mergeTwoPNGAndReturn($image1path, $image2path, $xdim, $ydim);
这是我想要使用的功能:希望我的目标是将此 php 文件包含到 html 页面中,然后能够在两个标签之间打印图像对象。从技术上讲,我可以将其保存为文件,然后输出文件,但考虑到我的项目,这将是非常低效的。
谢谢你帮助我。
~朱尔斯·库尔图瓦