[android] Bitmap 변환시 exif 정보 유지시키기 |
-
Bitmap.createScaledBitmap 을 사용해서 이미지 크기를 변경하면 exif 정보가 날아간다.
-
exif 정보는 Exchangeable Image File Format ( 교환 이미지 파일 형식 ) 의 약자로,
이미지 파일에 이미지에 대한 정보를 포함하는 메타데이터가 들어있다.
jpeg, tiff, riff, wav 포맷에 사용되며, png, gif 에서는 지원되지 않는다.
-
보통의 exif 정보는 날짜, 시간, 카메라 설정, 저작권, 위치 등의 정보가 저장된다.
-
여튼 exif 를 유지시켜주려면 아래와 같이 하면 된다.
ExifInterface srcExif = new ExifInterface(srcFile.getAbsolutePath());
ExifInterface dstExif = new ExifInterface(dstFile.getAbsolutePath());
copyExifWithoutLengthAndWidth(srcExif,dstExif);
dstExif.saveAttributes();
private static void copyExifWithoutLengthAndWidth(ExifInterface src, ExifInterface dst) {
for (Field f:ExifInterface.class.getFields()) {
String name = f.getName();
if (!name.startsWith("TAG_")) {
continue;
}
String key = null;
try {
key = (String)f.get(null);
} catch (Exception e) {
continue;
}
if (key == null) {
continue;
}
if (key.equals(ExifInterface.TAG_IMAGE_LENGTH) || key.equals(ExifInterface.TAG_IMAGE_WIDTH)) {
continue;
}
String value = src.getAttribute(key);
if (value == null) {
continue;
}
dst.setAttribute(key, value);
}
}
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] v7 에 추가된 RecyclerView 에 대해 알아보자 #2 (0) | 2015.11.29 |
---|---|
[android] 연락처 수정, 삭제에 대한 추가정보 (0) | 2015.11.16 |
Android Loaders Tutorial (0) | 2015.11.03 |
[android] expandable listview tutorial (0) | 2015.11.01 |
[android] Google Play Service 는 나쁜놈이었다. (0) | 2015.09.16 |
댓글