まだ整理していません。下書きです。
// 画像フォルダ、※ 相対パス か DOCUMENT_ROOT で書く $img_dir = '../img/upload/'; echo ' $img_dir=>'.$img_dir; $name = explode('.', $_GET[imgname]); $tumbnail_name = $name[0].'_thumbnail.'.$name[1]; $img_path = $img_dir.$tumbnail_name; echo ' $img_path=>'.$img_path; // 試験の場合は、前回生成の新画像を削除 // unlink($img_path); if(!file_exists($img_path)){ echo ' Tumbnailが無いので自動生成します。'; // 注意 // 画像Pathは URLではなく Pathで書く。 // 元画像 $srcname = explode('_thumbnail', $img_path); $srcname = $srcname[0].$srcname[1]; echo ' $srcname=>'.$srcname; $image = ImageCreateFromJPEG($srcname); echo ' $image=>'.$image; // 元画像のサイズを取得 $width = ImageSX($image); $height = ImageSY($image); echo ' $width=>'.$width; echo ' $height=>'.$height; // 縮小した画像のサイズを決める。 $new_width = 250; $rate = $new_width / $width; //圧縮比 $new_height = $rate * $height; echo ' $new_width=>'.$new_width; echo ' $new_height=>'.$new_height; // 空の画像を作成する。 $new_img = ImageCreateTrueColor($new_width, $new_height); // 画像を普通にリサイズコピーする場合。 // ImageCopyResized($img_path,$image,0,0,0,0,$new_width,$new_height,$width,$height); ImageCopyResized($new_img,$image,0,0,0,0,$new_width,$new_height,$width,$height); // サンプリングしなおす場合。 // ImageCopyResampled($new_img,$image,0,0,0,0,$new_width,$new_height,$width,$height); // ファイルに保存する場合。 ImageJPEG($new_img, $img_path, 100); //3つ目の引数はクオリティー(0~100) // ImageGIF($image, $file_path);//環境によっては使えない // ImagePNG($image, $file_path); } echo '<hr /><img src="'.$img_path.'" alt="" />';
※ PHP のGD関数はまだまだ途上のようです。随時使用が変わりますので、人の書いたものを信用せずに、公式サイトをご確認ください。