마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 사진 회전 문제입니다 소스첨부

0 추천

현재 제가 사진앨범이나 촬영을 하여 사진을 가지고 imagecrop 이라는 액티비티에서 이미지크롭을 해줄려고하는데요

베가아이언은 정면으로 잘 나타납니다. 그런데 갤럭시는 회전되어 나타나드라구요. 인터넷에 되있는대로 해도 

그대로 세로에서 가로로 눕혀져서 나옵니다. 이미지를 불러와서 회전 시켜주는 소스를 첨부하겠습니다.

자세히 설명 해주시면 감사하겠습니다.

@SuppressLint("NewApi")
	public void setImageBitmap(Bitmap bitmap, ExifInterface exif) {

		if (bitmap == null) {
			return;
		}

		if (exif == null) {
			setImageBitmap(bitmap);
			return;
		}

		final Matrix matrix = new Matrix();
		final int orientation = exif.getAttributeInt(
				ExifInterface.TAG_ORIENTATION, -1);
		int rotate = -1;

		switch (orientation) {
		case ExifInterface.ORIENTATION_ROTATE_270:
			rotate = 270;
			break;
		case ExifInterface.ORIENTATION_ROTATE_180:
			rotate = 180;
			break;
		case ExifInterface.ORIENTATION_ROTATE_90:
			rotate = 90;
			break;
		}

		if (rotate == -1) {
			setImageBitmap(bitmap);
		} else {
			matrix.postRotate(360);
			final Bitmap rotatedBitmap = Bitmap.createBitmap(bitmap, 0, 0,
					bitmap.getWidth(), bitmap.getHeight(), matrix, true);
			setImageBitmap(rotatedBitmap);
			bitmap.recycle();
		}
	}

 

너무어렵다ㅠ (650 포인트) 님이 2015년 2월 17일 질문

2개의 답변

+1 추천
마지막 if ~ else 문에서

matrix.postRotate(360) -> matrix.postRotate(rotate) 로 수정해보세여
Gradler (109,780 포인트) 님이 2015년 2월 17일 답변
rotate를 수정해도 똑같네요 갤럭시에선 ㅠㅠ
0 추천
exif  값을 제대로 가져오는지 브레이크 포인트 찍어서 확인해보세요.

null이거나 회전값이 없거나 할것 같은데,,,
이드로이드 (22,930 포인트) 님이 2015년 2월 17일 답변
...