|
http://blog.naver.com/PostView.nhn?blogId=anywars&logNo=140132767414
안드로이드는 다행스럽게도 이미지 해더를 수정할수 있는 클레스를 제공해준다. 문론 아이폰도 동일하다.
ExifInterface 란 이름이고 사용법은 매우 간단하다.
ExifInterface exif = new ExifInterface(filePath);
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, latitude);
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, longitude);
exif.setAttribute(ExifInterface.TAG_ORIENTATION, orientation);
exif.saveAttributes();
저렇게 클레스를 선언하고 파일경로만 선언하고 수정할 해더 정보를 수정하면 된다. 기본적으로 width나 height 정보는 지정하지 않아도 자동으로 세팅 된다.
태그 정보는 아래 주소 참조. (http://developer.android.com/reference/android/media/ExifInterface.html)
변경하고 싶은 테그 속성을 변경하고 saveAttributes()를 실행하면 수정 끝..
주의사항은 GPS 좌표를 변경할때 포멧에 맞지 않는 정보를 넣으면 기본 갤러리에서 에러를 발생할수 있다.
public static String ConvertTagGPSFormat(double coordinate) {
if (coordinate < -180.0 || coordinate > 180.0 ||
Double.isNaN(coordinate)) {
throw new IllegalArgumentException("coordinate=" + coordinate);
}
StringBuilder sb = new StringBuilder();
if (coordinate < 0) {
sb.append('-');
coordinate = -coordinate;
}
int degrees = (int) Math.floor(coordinate);
sb.append(degrees);
sb.append("/1,");
coordinate -= degrees;
coordinate *= 60.0;
int minutes = (int) Math.floor(coordinate);
sb.append(minutes);
sb.append("/1,");
coordinate -= minutes;
coordinate *= 60.0;
sb.append(coordinate);
sb.append("/1000");
return sb.toString();
}
이런식으로 location에 담겨있는 정보를 택스트 형식으로 변경하여 저장하면 문제 없이 저장된다.
'차근차근 > Android' 카테고리의 다른 글
[Android] Activity "생명주기" 관련 테스트 (0) | 2014.07.29 |
---|---|
쌓여가는 static 해제,캐쉬 데이터 삭제 방법! (0) | 2014.07.29 |
requestWindowFeature(Window.FEATURE_NO_TITLE); (0) | 2014.07.29 |
this.getApplication() (0) | 2014.07.29 |
안드로이드/Android 꼭 알아야 할 View의 필수 암기 메서드 ~! (0) | 2014.07.29 |