安卓开发关于图片上传后出现旋转的问题
2017-07-13 12:32
204 查看
首先,描述一下我今天发生的情况,在我们APP苹果手机拍出来的图片用安卓手机来上传成功后图片是旋转90度来展示的,(当然我不清楚你们是不是这种情况发生的,但是以下的方法来解决应该是都可以的)这很尴尬,开始排查。
其次,我的方法很简单,就是在上传图片之前把有问题的图片在转换一次就行了。。。
提示:我们是用图片路径来保存的
步骤:
1、我们将获取的到图片路径来做处理,我们把原来的图片路径带进去判断他旋转的角度:
2、原来的图片路径获得Bitmap对象:
3、再把上面的两个参数传进我们要把他修复成正常的bitmap对象返回
4、返回bitmap对象之后就是我们要的图片对象了,之后我们转回字符串在传给接口那边就行了
以上就是我所解决的方法,希望对大家有所帮助!!!
其次,我的方法很简单,就是在上传图片之前把有问题的图片在转换一次就行了。。。
提示:我们是用图片路径来保存的
步骤:
1、我们将获取的到图片路径来做处理,我们把原来的图片路径带进去判断他旋转的角度:
/** * 读取图片属性:旋转的角度 * * @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 = 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; }
2、原来的图片路径获得Bitmap对象:
/**
* 根据图片的路径获得Bitmap对象
*
* @param url
* @return
*/
public static Bitmap returnBitmap(String url) {
Bitmap bitmap = BitmapFactory.decodeFile(url);
return bitmap;
}
3、再把上面的两个参数传进我们要把他修复成正常的bitmap对象返回
/** * 旋转图片 * * @param angle 角度 * @param bitmap * @return Bitmap */ public static Bitmap rotaingImageView(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; }
4、返回bitmap对象之后就是我们要的图片对象了,之后我们转回字符串在传给接口那边就行了
/** * @param bitmap 把旋转图片弄为正常后的对象 * @param path 要保存的图片路径 * @return */ public static String saveBitmapFile(Bitmap bitmap, String path) { File file = new File(path);//将要保存图片的路径 try { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos); bos.flush(); bos.close(); } catch (IOException e) { e.printStackTrace(); } return path; }
以上就是我所解决的方法,希望对大家有所帮助!!!
相关文章推荐
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- 关于上传图片出现乱码的问题
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- IOS应用开发-图片处理(拉伸图片 创建缩略图 解决图片旋转的问题 图片编码及上传 将图片写入磁盘)
- IOS应用开发-图片处理(拉伸图片 创建缩略图 解决图片旋转的问题 图片编码及上传 将图片写入磁盘)
- 关于Android开发中图片资源文件夹drawable中图片与资源ID号出现对不上的问题
- 小女子菜鸟一枚,因本科毕业设计第一次接触安卓开发……图片上传问题求教
- Django后台开发笔记①:关于DjangoUeditor与python3存在兼容性问题的解决方案(即解决图片无法上传问题)
- IOS开发 图片的上传和下载(关于编码问题)
- Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法
- 关于安卓调用C#的WebService上传图片问题(不使用ksoap2)
- 关于部分手机调用系统拍照和相册图片出现旋转问题处理
- 手机上传图片出现旋转问题
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- 关于upload_max_filesize设置一直是2M,导致dede图片集上传图片出现upload error错误的问题
- 微信开发上传图片ios与安卓兼容问题
- 完美解决部分安卓手机调用系统拍照上传时图片旋转问题
- 关于oc 开发上传图片 功能遇到的问题分享
- 关于安卓调用C#的WebService上传图片问题(不使用ksoap2)
- iOS开发关于上传图片后,图片发生旋转的处理