Android 사진 정보 알아내기

Android에서 카메라 연동 및 갤러리 관련해서 개발하는 경우가 많습니다. 저도 이번에 사진 정보가 필요한 기능이 있어서 사용하게 되었습니다. 사진에는 EXIF라는 정보가 담겨있습니다.

EXIF 란 디지털 사진의 이미지 정보입니다. 아주 다양한 정보가 저장되는데 이미지의 기본값, 크기, 화소등이 있으며 사진을 찍은 카메라 정보, 찍을때 조리개, 노출정도등 이 저장됩니다. 이런 메타 정보들을 활용해서 앱을 만들고자 할 때 사용할수 있는 간단한 샘플입니다. 저는 이번에 사진 정보 중 찍은 날짜 정보를 가져왔습니다.

#1.사진 정보 읽어오기

String filename = Environment.getExternalStorageDirectory().getPath() + "/20140705_162816.jpg";
try {
    ExifInterface exif = new ExifInterface(filename);
    showExif(exif);
} catch (IOException e) {
    e.printStackTrace();
    Toast.makeText(this, "Error!", Toast.LENGTH_LONG).show();
}

#2. ExinfInterface 객체를 인수값으로 넘기기

private void showExif(ExifInterface exif) {
     
    String myAttribute = "[Exif information] \n\n";
     
    myAttribute += getTagString(ExifInterface.TAG_DATETIME, exif);
    myAttribute += getTagString(ExifInterface.TAG_FLASH, exif);
    myAttribute += getTagString(ExifInterface.TAG_GPS_LATITUDE, exif);
    myAttribute += getTagString(ExifInterface.TAG_GPS_LATITUDE_REF, exif);
    myAttribute += getTagString(ExifInterface.TAG_GPS_LONGITUDE, exif);
    myAttribute += getTagString(ExifInterface.TAG_GPS_LONGITUDE_REF, exif);
    myAttribute += getTagString(ExifInterface.TAG_IMAGE_LENGTH, exif);
    myAttribute += getTagString(ExifInterface.TAG_IMAGE_WIDTH, exif);
    myAttribute += getTagString(ExifInterface.TAG_MAKE, exif);
    myAttribute += getTagString(ExifInterface.TAG_MODEL, exif);
    myAttribute += getTagString(ExifInterface.TAG_ORIENTATION, exif);
    myAttribute += getTagString(ExifInterface.TAG_WHITE_BALANCE, exif);
     
    mView.setText(myAttribute);
}

이렇게 인수값으로 다양한 정보를 얻을 수 있습니다. 저는 여기서 날짜만 필요했기 때문에 TAG_DATETIEM만 사용하였습니다. 이처럼 사진의 정보를 이용해서 만드실 때 쉽게 정보를 얻을 수 있습니다. [jekyll-gh]: https://github.com/quarl894