web上で携帯などで撮影した写真を送信してもらいそれをローカル内のフォルダーに保存をするという流れになっています。
しかし、今のやり方では必要な緯度経度の情報が失われた状態でフォルダーに保存されるようになっています。
もし、exifデータを保持したまま保存できる方法がありましたらお教え願います。
今の画像保存の部分です
php
1function changeImageSize($img, $maxsize) { 2 if (!$img){ 3 return false; 4 } 5 $w0 = imageSx($img); // 画像リソースの幅 6 $h0 = imageSy($img); // 画像リソースの高さ 7 return array( 8 'w0'=>$w0, // 元画像の幅 9 'h0'=>$h0, // 元画像の高さ 10 'w1'=>$w0, // 保存画像の幅 11 'h1'=>$h0, // 保存画像の高さ 12 ); 13} 14 // $file = $_FILES['file']; 15 $file = $_FILES['image']; 16 $tmp_name = $file['tmp_name']; 17 var_dump("エラーは".$file["error"]); 18 $tmp_size = getimagesize($tmp_name); // 一時ファイルの情報を取得 19 $img = $extension = null; 20 $exif=exif_read_data($tmp_name); 21 $lat=$exif["GPSLatitude"]; 22 $lon=$exif["GPSLongitude"]; 23 var_dump($lat); 24 var_dump($lon); 25 var_dump("画像の種類は".$tmp_size[2]); 26 switch ($tmp_size[2]) { // 画像の種類を判別 27 case 1 : // GIF 28 $img = imageCreateFromGIF($tmp_name); 29 $extension = 'gif'; 30 break; 31 case 2 : // JPEG 32 $img = imageCreateFromJPEG($tmp_name); 33 $extension = 'jpg'; 34 break; 35 case 3 : // PNG 36 $img = imageCreateFromPNG($tmp_name); 37 $extension = 'png'; 38 break; 39 default : break; 40 } 41 $save_dir = '../images/'; 42 $save_filename = date('YmdHis'); 43 $save_basename = $save_filename. '.'. $extension; 44 $save_path =$save_dir. $save_basename; 45 while (file_exists($save_path)) { // 同名ファイルがあればファイル名を変更する 46 $save_filename .= mt_rand(0, 9); 47 $save_basename = $save_filename. '.'. $extension; 48 $save_path = $save_dir. $save_basename; 49 } 50 $maxsize=480; 51 $img_size = changeImageSize($img, $maxsize); // 最大500pxの画像サイズ 52 $out = imageCreateTrueColor($img_size['w1'], $img_size['h1']); // 新しい画像データ 53 54 // 背景色を設定する 55 $color_white = imageColorAllocate($out, 255, 255, 255); // 色データを作成 56 imageFill($out, 0, 0, $color_white); 57 58 // $imgの画像情報を$outにコピーする 59 imageCopyResampled( 60 $out, // コピー先 61 $img, // コピー元 62 0, 0, 0, 0, // 座標(コピー先:x, コピー先:y, コピー元:x, コピー元:y) 63 $img_size['w1'], $img_size['h1'], $img_size['w0'], $img_size['h0'] // サイズ(コピー先:幅, コピー先:高さ, コピー元:幅, コピー元:高さ) 64 );