最近写Android,调用相机接口拍照,但是返回来的结果老是会旋转,而且在不同的手机上旋转角度还不一样。
解决办法
可以在拍完照以后,获取图片的旋转信息,然后往相反方向旋转
获取旋转角度代码如下
// 从指定路径path下读取图片,并获取其EXIF信息
ExifInterface exifInterface = new ExifInterface(path);
// 获取图片的旋转信息
int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
degree = 90;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
degree = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
degree = 270;
break;
}
将图像转回去
// picture是ImageView
picture.setPivotX(picture.getWidth()/2);
picture.setPivotY(picture.getHeight()/2);
// 设置旋转角度
picture.setRotation(degree);