- ベストアンサー
画像リサイズアップロード
- 画像アップロードするプログラムを作成したのですが、元画像を指定したサイズ(アスペクト比を維持)させて画像をアップロードする方法を何度かトライしたのですが、経験浅く断念しています。
- GDで処理させる方法がベストと思っていますが、下記のサンプルコードを手直しお願いしていただけるか、下記と同様な手順での処理方法に類似したサイトがあれば教えてください。
- 処理の条件は、元画像を指定サイズでアスペクト比を維持した状態でリサイズし、元画像は削除するか、透過GIFも使えることです。その他のアドバイスもお待ちしています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考にどうぞ。 http://phpspot.org/blog/archives/2007/09/phppng.html 私は使ったことはありませんが、面倒なコーディングの手間が省けるかもしれません。
その他の回答 (1)
- dell_OK
- ベストアンサー率13% (766/5720)
私が以前作ったものを披露。 組み合わせるとこんな感じに。 ... if(move_uploaded_file($img, $sendpath)){ $img_name = $img_name; resize_image($sendpath); } } } ... function resize_image($image_file){ list($src_width,$src_height)=getimagesize($image_file); if ($src_width>280){ $resize_width = 280; $resize_height = $src_height * ( $resize_width / $src_width ); $image_src = imagecreatefromjpeg($image_file); $image_resize = imagecreatetruecolor($resize_width,$resize_height); imagecopyresized($image_resize,$image_src,0,0,0,0,$resize_width,$resize_height,$src_width,$src_height); imagejpeg($image_resize,$image_file); } } 私のはホームページ上に、横幅280ピクセルに統一したかったのでこうですが、 縦横率を維持するために、固定化される縦幅あるいは横幅を決める必要があります。 重要な処理はここ。 横幅を固定 $resize_width = 280; 高さ調節=元の高さ×(固定横幅÷元の横幅) $resize_height = $src_height * ( $resize_width / $src_width ); 「固定横幅÷元の横幅」 これが比率を保持する役目をはたします。 jpeg用なので、 imagejpeg($image_resize,$image_file); ここのところは分岐処理が必要かも。 アップロードされた画像ファイルが上書きされますので、 そこらへんはコピーするなどしてうまくしてください。 これでヒントになるかな。
お礼
おそくなりました。ありがとうございます。