android部分手机拍照后上传图片旋转问题
Posted 事在人为,幸福从不抱怨开始!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android部分手机拍照后上传图片旋转问题相关的知识,希望对你有一定的参考价值。
安卓开发过程中,要兼容的问题越来越多,从5.1以上的双卡,6.0以上的权限,7.0的FileProvide适配到8.0的应用升级未知应用安装处理等等,实在是太多了。
最近项目在测试的时候,有图片上传的功能,在测试小米手机时,发现上传后的图片,从服务端取回时,图片发生了旋转,在网上查了下资料,
发现部分手机确实有这个问题,有问题则要处理。
处理方法就是获取图片的旋转角度,然后对图片进行对应旋转后再上传,这样就OK了。
/**
* 获取指定路径图片
* @param path
* @return
*/
private int getPictureDegree(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 = 90;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
degree = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
degree = 270;
break;
catch (IOException e)
e.printStackTrace();
return degree;
然后对图片进行旋转:
private Bitmap rotaingBitmap(int angle, Bitmap bitmap)
Matrix matrix = new Matrix();
matrix.postRotate(angle);
// 创建新的图片
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,
bitmap.getWidth(), bitmap.getHeight(), matrix, true);
return resizedBitmap;
最后对旋转后的图片进行上传就OK了,亲测可行。
以上是关于android部分手机拍照后上传图片旋转问题的主要内容,如果未能解决你的问题,请参考以下文章
ios系统 竖屏拍照 canvas处理后 图片旋转(利用exif.js解决ios手机上传竖拍照片旋转90度问题)