[PHP-users 35527] phpでjpeg画像の取り込みについて

鈴木直人@SBS情報システム n_suzuki @ sbs-infosys.co.jp
2011年 3月 11日 (金) 22:35:53 JST


はじめまして
鈴木と申します。

phpでjpeg画像の取り込みについて教えてください。
すでに投稿されていたらすみません。

やりたいことは、画像をサーバにbase64でテキストにしてデータ格納することです。
現在のロジック上では300KBぐらいの画像は問題ありません。
500KBにちかくなると、「ページを表示できません」と表示されてしまいます。
phpのエラーログには何も残りません。

以下プログラムを記載します。
まず、fileタイプのinputタグで画像を取得します。
print("画像1 <input name='imgpath_a' type='file' size='60' 
onChange='imgc_a(this)'><br><br>");

ポストした後のプログラムで
この画像を元に以下のファンクションでリサイズしています。

//postされたイメージを作成するfunction
        function image_create($type,$img_path){
                switch ($type){
                        case "image/jpeg":
                                $img_in=@ImageCreateFromJPEG($img_path);
                                break;
                }
                return $img_in;
        }

function image_to_text($gazou_length,$type,$imgpath,$imgtmp){   //幅,画像タイプ,画像のパス,画像tmp
                $imgin=image_create($type,$imgpath);   //イメージ作成
                //---[リサイズ start]---
                $imgsize=getImageSize($imgpath);
                $length=$gazou_length;    //最大幅
                if($imgsize[0]>$length || $imgsize[1]>$length){
                        if($imgsize[0] >= $imgsize[1]){     //横が縦より大きい 

                                $width = $length;     //幅
                                $high = $imgsize[1] * $length / $imgsize[0];
                        }else{
                                $width = $imgsize[0] * $length / 
$imgsize[1];
                                $high = $length;
                        }
                        $imgout=ImageCreateTruecolor($width,$high);
                        ImageCopyResampled($imgout,$imgin,0,0,0,0,$width,$high,$imgsize[0],$imgsize[1]);
                        resize_image_create($type,$imgout,$imgtmp);

                        ImageDestroy($imgin);
                        ImageDestroy($imgout);
                }
                //---[リサイズ end]---
                //---[テキスト化 start]---
                $imgtxt=file_get_contents($imgtmp);
                $imgtxt=base64_encode($imgtxt);
                //---[テキスト化 end]---
                return $imgtxt ;
        }

調べた結果、  $img_in=@ImageCreateFromJPEG($img_path); で、ページを表示できませんになっているようです。
メモリの関係と思ったのですが、php.iniの設定は、
post_max_size = 8M
(100Mまでテスト済み)
upload_max_filesize = 2M
となっています。

何か考えられことはあるでしょうか。
どなたか、ご教授願いします。





PHP-users メーリングリストの案内