问题:Android 部分手机,app中显示本地图片没有被旋转,是正常的。但是上传服务器后,服务器上的图片是被旋转的,有被旋转90度的,也有被旋转180度的。
原因:部分手机拍照后,保存到本地是被旋转的,这个可以通过下面方法验证;
解决思路:
1、根据本地图片绝对路径,获取图片被旋转的角度;
private final int DEGREES_FIRST = 90;
private final int DEGREES_SECOND = 180;
private final int DEGREES_THREE = 270;
/**
* 读取图片属性:旋转的角度
* @param path 图片绝对路径
* @return degree旋转的角度
*/
public static int readPictureDegree(String path) {
int degree = 0;
try {
ExifInterface exifInterface = new ExifInterface(path);
int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
degree = DEGREES_FIRST;
break;