桜井と申します。
> // 撮影した写真を取得する。
> Bitmap bm = null;
> Bundle extras = data.getExtras();
> bm = (Bitmap) extras.get("data");
>
> // 写真をファイルに作成する。
> String fileName = "sample.jpg";
> FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE);
> BufferedOutputStream os = new BufferedOutputStream(fos);
> bm.compress(Bitmap.CompressFormat.JPEG, 80, os);
Bitmapはただのピクセルデータなので、GPS情報やExif情報などは
含まれていません。
そこからbm.compress()で作られるファイルにも、当然GPS情報は含まれません。
Hiroshi SAKURAI
2012/7/28 chiyo <
minmi...@gmail.com>:
> お世話になっております。
>
> システムカメラから写真を撮影し、保存、サーバにアップロードという流れのアプリを作成しています。
> (1)アプリからシステムカメラを起動する
> (2)GPS情報ONの状態で写真を撮影
> (3)写真をローカルに一旦保存
> (4)APサーバにアップロード
> (5)サーバよりアップロードした写真を取得
> (6)写真のEXIF情報を表示
>
> 上記手順の(6)で撮影した写真のEXIF情報(端末名、GPS経度・緯度)が必要なのですが、EXIF情報がnullで取得することができません。
>
> なぜEXIF情報が取得できないのか、ご教授お願い致します。
>
> ※写真撮影時GPS情報はONにしています。
> ※EXIF情報が取得できない以外、サーバのアップロードなどは正常に動作しています。
>
> 以下、ソースです。
> (1)カメラ起動
> // システムのカメラ画面をオープンする。
> startActivityForResult(new Intent("android.media.action.IMAGE_CAPTURE"), 1);
>
> (2)写真をローカルに一旦保存
> protected void onActivityResult(int requestCode, int resultCode, Intent
> data) {
> if (requestCode == 1 && resultCode == RESULT_OK) {
> try {
> // 撮影した写真を取得する。
> Bitmap bm = null;
> Bundle extras = data.getExtras();
> bm = (Bitmap) extras.get("data");
>
> // 写真をファイルに作成する。
> String fileName = "sample.jpg";
> FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE);
> BufferedOutputStream os = new BufferedOutputStream(fos);
> bm.compress(Bitmap.CompressFormat.JPEG, 80, os);
> fos.close();
> os.flush();
> os.close();
>
> // ※EXIFを取得してみる ←ここでExif情報を確認したがnullになっている。
> File[] files = getFilesDir().listFiles();
> for (File file : files) {
> if (file.getName().equals(fileName)) {
> filepath = file.getAbsolutePath();
> ExifInterface exif = new
> ExifInterface(file.getAbsolutePath());
> String latitudeRef =
> exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE_REF);
> String latitude =
> exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
> String longitudeRef =
> exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF);
> String longitude =
> exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);
> String altitudeRef =
> exif.getAttribute(ExifInterface.TAG_GPS_ALTITUDE_REF);
> String altitude =
> exif.getAttribute(ExifInterface.TAG_GPS_ALTITUDE);
> String model = exif.getAttribute
> (ExifInterface.TAG_MODEL);
> break;
> }
> }
>
> // 画像をサーバにアップロード
> ・・・
> }
> }
> }
>
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このディスカッションをウェブ上で閲覧するには、
https://groups.google.com/d/msg/android-group-japan/-/ZnRRxdlhIEwJ
> にアクセスしてください。
> このグループに投稿するには、
android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、
android-group-j...@googlegroups.com
> にメールを送信してください。
> 詳細については、
http://groups.google.com/group/android-group-japan?hl=ja
> からこのグループにアクセスしてください。