이미지의 Rotation 정보를 획득하고 회전하는 방법
02 Feb 2016 | Android안드로이드에서 사진을 ImageView 등에 출력할 때, 이미지의 Rotation 정보를 획득하여 적절하게 회전시켜주는 방법입니다.
이미지의 Orientation 정보 획득
public int getOrientationOfImage(String filepath) {
ExifInterface exif = null;
try {
exif = new ExifInterface(filepath);
} catch (IOException e) {
e.printStackTrace();
return -1;
}
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1);
if (orientation != -1) {
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
return 90;
case ExifInterface.ORIENTATION_ROTATE_180:
return 180;
case ExifInterface.ORIENTATION_ROTATE_270:
return 270;
}
}
return 0;
}
Image 회전
public Bitmap getRotatedBitmap(Bitmap bitmap, int degrees) throws Exception {
if(bitmap == null) return null;
if (degrees == 0) return bitmap;
Matrix m = new Matrix();
m.setRotate(degrees, (float) bitmap.getWidth() / 2, (float) bitmap.getHeight() / 2);
return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), m, true);;
}