投稿者 メッセージ
<  PHPプログラミング  ~  ”imagecreatefromjpeg()”について
nagai
投稿1時間: 水 11月 15, 2006 3:10 am  引用



登録日: 2006年11月 15日
投稿記事: 2

初めまして。
独学でPHPを学習しています。

画像のサムネイルを作成し表示させようとしていますが、
元画像によっては作成処理が動かないことがわかりました。
地道にコードを追った所、”imagecreatefromjpeg()”で止まっているようです。
元画像の名前を変更しても改善されませんでしたが、
画像サイズ(height)を変更することで改善されました。

”imagecreatefromjpeg()”他で扱える画像サイズ上限、その他制限など、
ご存知の方がいらっしゃいましたらご教授をお願いします。

$size: 496 KB (NG) / 57.1 KB (OK)
$width: 640
$height: 3602 (NG) / 640 (OK)
$type: jpg

---作成コード---
list($width,$height,$type) = getimagesize("lib_img/".$IMG);
if (!file_exists ("lib_img/tmp/mini_".$IMG)){
if ($type == 1){
$src = @imagecreatefromgif("lib_img/".$IMG);
}elseif($type == 2){
$src = @imagecreatefromjpeg("lib_img/".$IMG);
}else{
$src = @imagecreatefrompng("lib_img/".$IMG);
}
if ($width >= $height) {
$L_size = $width;
} else {
$L_size = $height;
}
$R_point = 150 / $L_size;
$R_width = round($width * $R_point * 10) / 10;
$R_height = round($height * $R_point * 10) / 10;
$dst=imagecreatetruecolor($R_width, $R_height);
imagecopyresized($dst,$src,0,0,0,0, $R_width, $R_height,$width,$height);
if ($type == 1){
imagegif($dst,"lib_img/tmp/mini_".$IMG);
}elseif($type == 2){
imagejpeg($dst,"lib_img/tmp/mini_".$IMG);
}else{
imagepng($dst,"lib_img/tmp/mini_".$IMG);
}
}
$P_imgs = "<IMG BORDER=\"0\" SRC=\"lib_img/tmp/mini_".$IMG."\">\n";
---ここまで---
トップに移動
ユーザー情報を表示 メッセージを送信 メールを送信
allison
投稿1時間: 水 11月 15, 2006 11:32 am  引用



登録日: 2006年10月 21日
投稿記事: 13

こんにちは。
元画像が大きすぎて、サーバ側で処理できる限界を超えているのだと思います。
どのサイズまで可能かは、サーバの設定に依存しますので、具体的な数字は分かりません。

サーバに関する知識が乏しいので、参考程度に読んで頂きたいのですが、
GD で加工可能なサイズが設定されているのではなく、
php.ini の memory_limit の値がどうなっているか…が問題のようです。

負荷が大きい処理ですので、もし共用サーバをお使いであれば、
処理可能サイズまで縮小したものをアップロードすべきだと思います。
トップに移動
ユーザー情報を表示 メッセージを送信
nagai
投稿1時間: 土 11月 18, 2006 5:14 pm  引用



登録日: 2006年11月 15日
投稿記事: 2

>allison様
返信ありがとうございます。
コード云々ではないと解り納得がいきました。

画像アップロードのテストとの組み合わせで疑問に思ったことだったので、
アップロードサイズに制限をかけて対処します。

ご教授ありがとうございました。


動作環境が自宅サーバなので、php.ini を確認しましたが、
”memory_limit :8M”だったので問題ない様に思えました。
サーバ側ログなど確認する方法を勉強してみます。
トップに移動
ユーザー情報を表示 メッセージを送信 メールを送信
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.