投稿者 |
メッセージ |
|
< PHPプログラミング ~ ”imagecreatefromjpeg()”について |
|
時間:
水 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";
---ここまで--- |
|
|
|
|
|
|
|
時間:
水 11月 15, 2006 11:32 am
|
|
|
登録日: 2006年10月 21日
投稿記事: 13
|
|
こんにちは。
元画像が大きすぎて、サーバ側で処理できる限界を超えているのだと思います。
どのサイズまで可能かは、サーバの設定に依存しますので、具体的な数字は分かりません。
サーバに関する知識が乏しいので、参考程度に読んで頂きたいのですが、
GD で加工可能なサイズが設定されているのではなく、
php.ini の memory_limit の値がどうなっているか…が問題のようです。
負荷が大きい処理ですので、もし共用サーバをお使いであれば、
処理可能サイズまで縮小したものをアップロードすべきだと思います。 |
|
|
|
|
|
|
|
時間:
土 11月 18, 2006 5:14 pm
|
|
|
登録日: 2006年11月 15日
投稿記事: 2
|
|
>allison様
返信ありがとうございます。
コード云々ではないと解り納得がいきました。
画像アップロードのテストとの組み合わせで疑問に思ったことだったので、
アップロードサイズに制限をかけて対処します。
ご教授ありがとうございました。
>
動作環境が自宅サーバなので、php.ini を確認しましたが、
”memory_limit :8M”だったので問題ない様に思えました。
サーバ側ログなど確認する方法を勉強してみます。 |
|
|
|
|
|
|
|
|
新規投稿: 不可 返信: 不可t 自分の記事の編集: 不可 自分の記事の削除: 不可 投票への参加: 不可
|
|