大多数手机相机都是横向的,这意味着如果您以纵向拍摄照片,生成的照片将旋转 90 度。在这种情况下,相机软件应使用查看照片的方向填充 EXIF 数据。
我从此处复制此答案
其他方式,您可以从相机获取旋转,然后执行任何您想要返回的图像。完整代码这里这个关于图像选择器的示例,但返回的处理图像的代码帮助我控制图像的旋转。
private int getRotationFromCamera(Context context, Uri imageFile) {
int rotate = 0;
try {
context.getContentResolver().notifyChange(imageFile, null);
ExifInterface exif = new ExifInterface(imageFile.getPath());
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;
}
} catch (Exception e) {
e.printStackTrace();
}
return rotate;
}