我试图使用以下方法识别图像的方向:
ExifInterface exif = new ExifInterface(_path);
int exifOrientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL);
我不确定它是否正常工作。这就是为什么: 我在桌子上拍了一张纸的图像"肖像"取向。我的手机在与桌子平行的平面上。但是,手机会保存图像,逆时针旋转90度。
我不知道为什么会这样做,但无论如何,我希望我的 exifOrientation 为6,这样我就可以用它来旋转我的图像:
switch (exifOrientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
rotate = 90;
break;
...
...
}
但是,我的 exifOrientation 1 且图片无法正确旋转。
我看过: Why does an image captured using camera intent gets rotated on some devices on Android?
甚至尝试过:
private int getImageOrientation(){
final String[] imageColumns = { MediaStore.Images.Media._ID, MediaStore.Images.ImageColumns.ORIENTATION };
final String imageOrderBy = MediaStore.Images.Media._ID+" DESC";
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
imageColumns, null, null, imageOrderBy);
if(cursor.moveToFirst()){
int orientation = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.ImageColumns.ORIENTATION));
cursor.close();
return orientation;
} else {
return 0;
}
}
重申一下,我试图找出正确的方向。