PHP GD 画像が縮小できない
宜しくお願いします。
※ローカル環境です。
(WinXP PHP5 Smarty PEAR MySQL ※GDはインストされています。)
下記のコードで、サーバーにもともと上げてある画像(jpeg)を縮小して、
それをブラウザに表示させようと思います。
ですが、縮小されずに、元の画像サイズのまま表示されてしまいます。
おかしな点をご指摘下さいませ。
また、(1)で、
jpegファイルを取り込むコードがありますが、これは、
もし画像がGIFであったりPNGの場合を顧慮するなら、
取り込む際にそれぞれを判定するのが基本でしょうか?
もし、今回のようにサバー元の画像をリサイズするのであれば、拡張子もわかっていますので、
jpegファイルだけのことを考えればいいですが、
たとえば、任意のアップロードされたファイルを扱う場合は、上記3種類を判定すして処理すべきですよね?
以上、2点を回答下さいませ。
// -- (1)
// 画像を読み込む。
$file_path = "http://www元画像.com/img/aa.jpg";
$image = ImageCreateFromJPEG($file_path); //JPEGファイルを読み込む
/***********
$image = ImageCreateFromGIF($file_path); //GIFファイルを読み込む
$image = ImageCreateFromPNG($file_path); //PNGファイルを読み込む
************/
// -- (2)
// 画像のサイズを取得。
$width = ImageSX($image); //横幅(ピクセル)
$height = ImageSY($image); //縦幅(ピクセル)
// -- (3)
// 縮小した画像のサイズを決める。
$new_width = 100;
$rate = $new_width/$width; //圧縮比
$new_height = $rate*$height;
// -- (4)
// 空の画像を作成する。
$new_image = ImageCreateTrueColor($new_width, $new_height);
// -- (5)
// サンプリングしなおす
ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height);
// -- (6)
// ブラウザに出力する場合。
ImageJPEG($image);
//ImageJPEG($image,'simpletext.jpg');
//ImageGIF($image); //環境によっては使えない
//ImagePNG($image);
// -- (7)
// メモリを解放する。
imagedestroy ($new_image);
imagedestroy ($image);