有没有办法让你用相机拍摄的照片方向?
我使用下面的方法来恢复我画廊中图像的方向,但如果我用相机拍照则不起作用。
public static int getImageOrientation(Context context, Uri photoUri) {
int orientation = -1;
Cursor cursor = context.getContentResolver().query(photoUri,
new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, null, null, null);
if (cursor != null && cursor.getCount() == 1) {
cursor.moveToFirst();
orientation = cursor.getInt(0);
}
return orientation;
}
答案 0 :(得分:3)
您可以从以下代码中获取图片的方向:
try {
context.getContentResolver().notifyChange(imageUri, null);
File imageFile = new File(imagePath);
ExifInterface exif = new ExifInterface(imageFile.getAbsolutePath());
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
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;
}
Log.i("RotateImage", "Exif orientation: " + orientation);
Log.i("RotateImage", "Rotate value: " + rotate);
} catch (Exception e) {
e.printStackTrace();
}
首先,您必须将捕获的图像保存在SD卡上,然后从保存图像的路径中获取图像Uri。然后将Uri作为imageUri传递给发布的代码。