GDライブラリを利用して画像に文字を合成して、HTMLの任意の場所に出力したいのですが、header(”Content-type: image/jpeg”);が優先してしまうせいか、思うように出力ができません。

なにか設定が必要なのでしょうか?
よろしくお願いします。
<?php

//画像合成処理


header(”Content-type: image/jpeg”);
imagejpeg($img);
imagedestory($img);
?>



<BODY>
<TABLE>
<TBODY>
<TR>
<TD>
<img src=<?php echo $PHP_SELF ?>>
</TD>
</TR>
</TBODY>
</TABLE>
</BODY>

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/02/21 10:09:47
  • 終了:--

回答(2件)

id:ohmix1 No.1

ohmix1回答回数235ベストアンサー獲得回数142006/02/21 10:25:14

ポイント40pt

http://www.hatena.ne.jp/1140484187#

人力検索はてな - GDライブラリを利用して画像に文字を合成して、HTMLの任意の場所に出力したいのですが、header(”Content-type: image/jpeg”);が優先してしまうせいか、思うように出力が..

たぶん勘違いしてます。

HTMLを出力するPHPとJPEGを出力するPHPは別にしないとダメです。


引数等が良くわかりませんが、

1. HTMLを出力するPHPではsrc部のみ編集して、JPEGを出力するPHPのURLを指定

2. 1とは別にJPEGを出力するPHPを作成


まず、JPEGを単体で出力できるように作ってみましょう。


以上

id:konorinori

ありがとうございます。

別々に製作し表示させることが出来ました。

ちなみに

同作業を$_POST[’***’]で画像ファイルを指定し表示させる方法はないでしょうか?

itemfileから$_POST(画像ファイル)→print_image.php→image.htmlへ出力

試してみると画像部分が「×」となってしまいました。

2006/02/21 11:15:04
id:bonlife No.2

回答回数421ベストアンサー獲得回数752006/02/21 10:48:57

ポイント50pt

$PHP_SELFはそのPHPファイル全体の出力結果を出そうとするので、生成された画像だけではなく、その下のHTMLのソースも”Content-type: image/jpeg”として扱おうとしてしまっているのではないでしょうか。


画像を表示させる方法は2つあります。

1つは、画像生成部のPHPソースを切り出し、別ファイルとして、それをimgタグから呼び出す方法です。

もう1つは、imagejpegの2つ目の引数で画像のファイル名を指定し、そのファイル名をimg srcで指定する方法です。

2つ目の方法でのサンプルを以下に示しますので、ご確認ください。


<?php

header(”Content-type: image/jpeg”);

$image = imagecreate(200, 200);

$bcolor = imagecolorallocate($image, 0, 0, 0);

$textcolor = imagecolorallocate($image, 255,255, 255);

$txt=”test”;

ImageTTFText ($image, 40, 0, 10, 60, $textcolor, ”HGRSGU.TTC”,$txt);

imagejpeg($image,”./test.jpg”);

imagecolordeallocate ($image,$bcolor);

imagedestroy($image);

?>

<html>

<body>

<table>

<tbody>

<tr>

<td>

<img src=”./test.jpg”>

</td>

</tr>

</tbody>

</table>

</body>

</html>

id:konorinori

ありがとうございます。

うまく動作させることがきました。

大変助かりました!

2006/02/21 11:26:34
  • id:ohmix1
    毎回同じ画像なの?


    現実的問題に対処する為には、回答2の処理に加えて以下を考慮する必要があります。
    a. 生成されるtest.jpgは1つなので、複数同時アクセスがあった時等に別の人のtest.jpgが表示されます。
    b. これを回避するには回答1の方式にするか、または要求毎にファイル名を変えてやる必要がある
    c. その場合には、ワークのjpegファイルを削除するタイミングが必要

    以上

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません