안드로이드에서 사진 메타데이터를 받아오는 방법

제가 알기로는 사진도 음악파일처럼 메타데이터가 있다고 알고있는데요. 사진을 찍을때의 이미지 크기, 화소, 날짜 같은게 저장되있다고 들었어요. 저는 사진을 찍은 날짜값을 받아오고 싶은데 어떻게 받아올수 있을까요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    안드로이드의 ExifInterface라는 클래스가 해당 기능을 지원해줍니다.

    String filename = "파일의 경로";
    try {
        ExifInterface exif = new ExifInterface(filename);
        showExif(exif);
    } catch (IOException e) {
        e.printStackTrace();
        Toast.makeText(this, "Error!", Toast.LENGTH_LONG).show();
    }
    

    ExifInterface를 사용할때는 꼭 예외처리를 해주셔야합니다.

    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);
    }
    

    이런 식으로 해당 태그의 값을 받아올수있습니다. 여기서 날짜를 받아오시길 원하시는거니 ExifInterface.TAG_DATETIME을 쓰시면 됩니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.