- ベストアンサー
PHPでGDライブラリを使って縮小した画像を直接表示したい
PHPでGDライブラリを使って、「image.jpg」という画像(800x222のJPEGファイル)を、GETで渡した幅に縮小させたくて、次のように書きました。 -----reimage.php--------------------- <?php header("Content-Type:image/jpeg"); $old_width=800; $old_height=222; $width = htmlspecialchars($_GET['w']); $height = ($old_height / $old_width) * $width; $source = imagecreatefromjpeg("image.jpg"); $re_image = imagecreatetruecolor($width,$height); imagecopyresampled($re_image,$source, 0, 0, 0, 0,$width, $height, $old_width, $old_height); imagejpeg($re_image); imagedestroy($re_image); ?> -------------------------- 他のHTMLファイルから <img src="reimage.php?w=480"> などとすると縮小された画像が表示されるのですが、直接「reimage.php?w=480」を開くと、文字化けした文字列が並んでいるばかりで画像が表示されません。 firefoxでMIMEタイプを見てみると、「text/html」になっています。 >header("Content-Type:image/jpeg"); の部分がうまくいっていないのだと思いましたが、どう直せばいいのか分かりません。 なお、サーバーはxreaの広告免除を使っています。 まだPHPを勉強し始めて日が浅いので、見当違いなことを聞いているかも知れませんが、よろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
imagedestroyはしなくても良いのではないでしょうか? 外してたら、すみません。 少し気になるのが、 header("Content-Type:image/jpeg"); ↓ header('Content-type: image/jpeg'); の方が、よいかと思います。
その他の回答 (1)
- se-nabe
- ベストアンサー率34% (31/91)
はじめまして、 私もこの間画像のリサイズに困り。 いろいろ探した結果こんなソースがありましたので、 参考に見てみてはいかがですか?
お礼
ありがとうございます。 簡単にリサイズが出来るようで、教えていただいたことはありがたいのですが、それですと、縮小した画像ファイルに保存してからそれを読み込むことになるかと思います。 僕がやりたいことは、PHPのファイルを指定してそれを画像ファイルとしてブラウザに認識させることです。 言葉足らずだったらすみません。
お礼
ありがとうございます。 header('Content-type: image/jpeg');に変えて、imagedestroy($re_image);を外して試してみたのですが、やはり画像が表示されませんでした。 このままやっていても埒が明かないので、縮小した画像にランダムに名前を付けて保存し、それを呼び出すというようにしました。 ご迷惑おかけしました。