みなさん、良い一日を。簡単に言えば、私は都市のライバルのようなオンライン カード ゲームを作ろうとしています。そのために、私は主に PHP と SQL を使用しています。現在、データベースに基づいてカードの png ファイルを生成しようとしています。
画像にテキストを追加するために、画像をアルファチャンネルとマージすることはすでにできましたが、私の本当の問題は、この画像を他の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);
}
これにより、意図したとおりの画像が非常にうまく出力されますが、「Hello !」というテキストが出力されます。どこにも見つかりません。また、"$final_image" の部分はテスト用ですので無視してください。あなたは私がこの行にコメントしたことに気づいたかもしれません:
//$image = mergeTwoPNGAndReturn($image1path, $image2path, $xdim, $ydim);
これは私が使用したい機能です。うまくいけば、私の目標は、このphpファイルをhtmlページに含めて、2つのタグの間に画像オブジェクトを印刷できるようにすることです。技術的には、ファイルとして保存してからファイルを出力することもできますが、プロジェクトを考えると非常に非効率的です。
助けてくれてありがとう。
〜ジュール・クルトワ