[PHP-users 31720] Re: POST で送信し、 GD でダイレクト出力し、< img >で表示する方法
土屋
tsuchiya_masahiro @ yahoo.co.jp
2007年 3月 20日 (火) 22:24:46 JST
鈴木様
ツチヤです。
早速のお返事どうもありがとうございます。
また、お返事が遅くなり申し訳ございませんでした。
まず、1の方法についてですが、
result.phpにお教えいただいたコードを追加して、
以下のようなファイルを作成してみました。
(途中は省略しています。)
---- result.php -------
<?php
$original_filename =
$HTTP_POST_FILES['filename']['tmp_name'];
$img = @imagecreatefromjpeg ($original_filename);
imagettftext($img, $size, 0, $x, $y, $color, $font,
$text);
ob_start();
imagejpeg($img);
$_SESSION['image'] = ob_get_contents();
ob_end_clean();
?>
<BODY>
<TABLE>
<TR>
<TD width="80%" align="center">
<?php print $_SESSION['image'];?>
</TD>
</TR>
</TABLE>
</BODY>
----- 以上 result.php -------
上記のファイルで試したところ、
大量の文字化けが返ってきました。
$_SESSION['image']の書き出しはprintでよいのでしょうか?
それともprint $_SESSION['image'];の場所がまずいのでしょ
うか?
また、2の方法はこれから試してみますので、
試し次第、またご連絡させていただきます。
--- 鈴木孝征 <takamasa @ thaliana.myhome.cx> wrote:
> 鈴木と申します。
>
> 画像処理の内容をresult.phpに移して、合成した画像をセッ
ションに保存すると
> いう方法はどうでしょうか。PHPのイメージ処理関数群を眺
めたところ、画像
> データを変数に取得できるものがなさそうなので、出力バッ
ファを一時保存して
> セッションに保存してはどうでしょうか。
>
> result.phpの処理
> 1. gousei.phpで行っていた画像処理を行う
> 2. ob_start()
> 3. imagejped($image)
> 4. $_SESSION['image'] = ob_get_contents()
> 5. ob_end_clean()
> 6. これまでのresult.phpの処理(HTMLを出力)
>
> gousei.phpの処理(もはや合成処理を行っていませんが)
> 1. print $_SESSION['image']
>
>
> あるいはresult.phpで送信されたファイルの内容をfgetsで
取得してセッション
> にいれてしまうという方法もあるかと思います。gousei.php
側でセッションの内
> 容を取得したあとimagecreatefromstring関数でイメージに
戻すなど。
>
> result.phpでの処理
> 1. $fp = fopen('送信されたファイル', 'r');
> 2. while(! feof($fp)) $_SESSION['file_content'] .=
> fgets($fp)
> 3. $_SESSION['post'] = $_POST
> 4. HTMLを出力
>
> gousei.phpでの処理
> 1. $img =
> imagecreatefromstring($_SESSION['file_content']);
> 2. $post = $_SESSION['post'];
> 3. 画像処理
> 4. imagejpeg($img);
>
--------------------------------------
Start Yahoo! Auction now! Check out the cool campaign
http://pr.mail.yahoo.co.jp/auction/
PHP-users メーリングリストの案内