最終更新:
moonlight_aska 2014年02月16日(日) 16:42:58履歴
JPEGファイルからExif(Exchangeable image file format)情報を取得するには, イグジフインタフェース(ExifInterface)クラスを利用する. (API Level5以降)
http://developer.android.com/reference/android/med...

- MainActivity.java
- JPEGファイルのパスを指定して, ExifInterfaceのインスタンスを取得する.
- ExifInterface#getAttribute/getAttributeInt/getAttributeDoubleメソッドに, 取得する情報のタグを指定して値を取得する.
- ExifInterface#getLatLongメソッドで, 緯度・経度を取得する.
- ExifInterface#hasThumbnailメソッドで, サムネイルの有無を調べ, ExifInterface#getThumbnailメソッドでサムネイルを取得する.
http://developer.android.com/reference/android/med...
package com.moonlight_aska.android.exifinfo;
import java.io.IOException;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.ExifInterface;
import android.os.Bundle;
import android.os.Environment;
import android.widget.ImageView;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView sizeText = (TextView)findViewById(R.id.sizeinfo);
TextView dateText = (TextView)findViewById(R.id.dateinfo);
TextView latlongText = (TextView)findViewById(R.id.latlonginfo);
ImageView thumbnailView = (ImageView)findViewById(R.id.thumbnail);
try {
// ExifInterfaceのインスタンス取得
ExifInterface exif = new ExifInterface(Environment.getExternalStorageDirectory().getPath() + "/sample/sample.jpg");
if (exif != null) {
// 画像情報
String info = String.format("size: %d x %d",
exif.getAttributeInt(ExifInterface.TAG_IMAGE_WIDTH, -1),
exif.getAttributeInt(ExifInterface.TAG_IMAGE_LENGTH, -1));
sizeText.setText(info);
info = String.format("date: %s", exif.getAttribute(ExifInterface.TAG_DATETIME));
dateText.setText(info);
float[] latlong = new float[2];
exif.getLatLong(latlong);
info = String.format("latlong: %f, %f", latlong[0], latlong[1]);
latlongText.setText(info);
// サムネイル
if (exif.hasThumbnail()) {
byte[] image = exif.getThumbnail();
Bitmap bitmap = BitmapFactory.decodeByteArray(image, 0, image.length);
thumbnailView.setImageBitmap(bitmap);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 動作例

コメントをかく