久しぶりにソース晒し
ファイルアップ&GDによるサムネール作成のソース。
引用させて頂いたものが多いので、自分なりにコメントをつけてます。
エラー処理や表示などの機能は無し。
<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <META NAME="GENERATOR" CONTENT="mi"> <TITLE></TITLE> </HEAD> <BODY> <form method ="post" enctype="multipart/form-data" action="fileup2.php"> <input type="file" name="data" size="30"> <input type="submit" value="表示!"> </form> <?php // 最大の高さ・幅を設定します $width = 150; $height = 150; //画像ディレクトリ/サムネディレクトリ $updir = "./updir/"; $tupdir = "./tupdir/"; $filename = $_FILES['data']['name']; if (move_uploaded_file($_FILES['data']['tmp_name'], $updir.$filename) == FALSE){ echo "参照で画像ファイルを指定して、表示をクリック!"; echo $_FILES['data']['error']; } else { echo "ファイル名 " . $filename . " アップロード成功!"; //echo $_FILES['data']['error']; echo "<br><br>"; } if($filename == ""){ echo ""; } else { //元画像のサイズ(横、縦)を取得 list($width_orig, $height_orig) = getimagesize($updir.$filename); //横÷縦で計算 $ratio_orig = $width_orig/$height_orig; //計算。よくわからん if ($width/$height > $ratio_orig) { //最適な縦横比に $width = $height*$ratio_orig; } else { //割って答えが大きいなら縦長 $height = $width/$ratio_orig; } //画像の場所も含めた名前(変数にする意味なかったかなー) $newfile ="$updir"."$filename"; // 再サンプル $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($newfile); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); //サムネの名前、先頭にt_ $thum_name="t_"."$filename"; //サムネの場所も含めた名前 $thumnail ="$tupdir"."$thum_name"; // サムネ出力 imagejpeg($image_p, $thumnail, 100); echo "<img src ='$thumnail'><br><br>"; echo "<img src='$newfile'>"; } ?> </BODY> </HTML>
参考にさせていただきました
http://w1.nirai.ne.jp/freeze/main/file09.html
PHPマニュアル:imagecopyresampled:再サンプリングを行いイメージの一部をコピー、伸縮する