Это проблема, которая мучила меня за МЕСЯЦ. Я видел все в сообщениях о том, что они поворачивают изображение, выбранное из галереи, или взятое с намерением захвата изображения, но никто не работал. Большим нарушителем, конечно же, являются устройства Samsung, но я даже видел какое-то причудливое поведение на моем Nexus.Надежный способ получения правильно повернутого растрового изображения с камеры/галереи
Я использую намерения, чтобы выбрать изображения из галереи и камеры, но кажется, что пейзажные фотографии всегда, кажется, вращаются на 90 градусов. Первый шаг всегда ExifInterface, что-то вроде этого:
ExifInterface exif = new ExifInterface(imageUri.getLastPathSegment();
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
int rotationNeeded = getRotationFromExifData(orientation);
Matrix matrix = new Matrix();
matrix.setRotate(rotationNeeded);
Где getRotationFromExifData (ориентация) является:
private static int getRotationFromExifData(int orientation) {
Log.d(LOG_TAG, "Orientation: " + orientation);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
Log.d(LOG_TAG, "Exif returned 90");
return 90;
case ExifInterface.ORIENTATION_ROTATE_180:
Log.d(LOG_TAG, "Exif returned 180");
return 180;
case ExifInterface.ORIENTATION_ROTATE_270:
Log.d(LOG_TAG, "Exif returned 270");
return 270;
default: // Normal or 0
Log.d(LOG_TAG, "Exif returned 0");
return 0;
}
}
Это не работает, ExifInterface (от того, что я вижу) всегда возвращает 0 (или нормально), особенно на устройствах Samsung.
Другие шаги включают запрос к MediaStore и другим нежелательным файлам, которые не работают. Может кто-нибудь, пожалуйста, скажите мне, какой именно способ получить правильное вращение изображения, используя все собственные намерения, поэтому все изображения отображаются правильно? Заранее спасибо.
Спасибо, но я не управляю камерой вручную, я использую сторонние приложения для захвата/выбора изображений. – Brandon
Я действительно испытал это, когда попытался получить данные ориентации из Exif. К сожалению, я не нашел решения. –