[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 メーリングリストの案内