Как определить ориентацию картинки без ExifInterface? - PullRequest
0 голосов
/ 15 марта 2011

Я загружаю изображение в bitmap и мне нужно знать ориентацию снятого изображения (с камеры), чтобы показать его правильно.Способ использования следующего кода работает хорошо (начиная с уровня API 5), но что делать, если android:minSdkVersion="4"?Есть ли другой способ?

ExifInterface exif = new ExifInterface(SourceFileName);     //Since API Level 5
String exifOrientation = exif.getAttribute(ExifInterface.TAG_ORIENTATION);

Ответы [ 2 ]

7 голосов
/ 14 ноября 2012
Matrix matrix = new Matrix();

ExifInterface exifReader = new ExifInterface(filePath);

int orientation = exifReader.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1);

if (orientation ==ExifInterface.ORIENTATION_NORMAL) {

// Do nothing. The original image is fine.
} else if (orientation == ExifInterface.ORIENTATION_ROTATE_90) {

       matrix.postRotate(90);

} else if (orientation == ExifInterface.ORIENTATION_ROTATE_180) {

       matrix.postRotate(180);

} else if (orientation == ExifInterface.ORIENTATION_ROTATE_270) {

       matrix.postRotate(270);

}
2 голосов
/ 15 марта 2011

Легко реализовать свой собственный Exif Reader

Тогда

Metadata metadata = JpegMetadataReader.readMetadata(new File(imagePath));
Directory jpegDirectory = metadata.getDirectory(JpegDirectory.class);
 int height = jpg.GetImageHeight();
 int width = jpg.GetImageWidth();
...