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件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.2ベストアンサー20pt
imagedestroyはしなくても良いのではないでしょうか?
外してたら、すみません。
少し気になるのが、
header("Content-Type:image/jpeg");
↓
header('Content-type: image/jpeg');
の方が、よいかと思います。
この回答へのお礼
ありがとうございます。
header('Content-type: image/jpeg');に変えて、imagedestroy($re_image);を外して試してみたのですが、やはり画像が表示されませんでした。
このままやっていても埒が明かないので、縮小した画像にランダムに名前を付けて保存し、それを呼び出すというようにしました。
ご迷惑おかけしました。
No.1ベストアンサー10pt
はじめまして、
私もこの間画像のリサイズに困り。
いろいろ探した結果こんなソースがありましたので、
参考に見てみてはいかがですか?
この回答へのお礼
ありがとうございます。
簡単にリサイズが出来るようで、教えていただいたことはありがたいのですが、それですと、縮小した画像ファイルに保存してからそれを読み込むことになるかと思います。
僕がやりたいことは、PHPのファイルを指定してそれを画像ファイルとしてブラウザに認識させることです。
言葉足らずだったらすみません。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示












