Android(安卓)调用 startActivityForResult(intent,requestCode) 启动相机拍照,返回图片是被旋转过的
16lz
2021-01-26
Android 调用 startActivityForResult(intent,requestCode) 启动相机拍照,返回的图片是被旋转过的。
如图:
解决办法: 判断它旋转了几度,把它转回来就行了:
//将图片旋转xx度(摆正图片),ExifInterface 类用于判断,Matrix 用于旋转Bitmap Matrix m = new Matrix(); ExifInterface exifInterface = new ExifInterface(file.getPath()); switch (exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_NORMAL)) { case ExifInterface.ORIENTATION_ROTATE_90: m.setRotate(90, (float) bitmap.getWidth() / 2, (float) bitmap.getHeight() / 2); break; case ExifInterface.ORIENTATION_ROTATE_180: m.setRotate(180, (float) bitmap.getWidth() / 2, (float) bitmap.getHeight() / 2); break; case ExifInterface.ORIENTATION_ROTATE_270: m.setRotate(-90, (float) bitmap.getWidth() / 2, (float) bitmap.getHeight() / 2); break; } bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), m, true);
更多相关文章
- android View中如何判断长按事件
- Android如何获取判断是否有悬浮窗权限
- Android(安卓)working with Volley
- Android模糊效果总结
- Android自定义View-圆形图片控件
- android全功能音乐播放器、基于MVP-Clean + Weex + RxJava2 + Re
- android 图片处理(截取,缩放)
- 通过GridView仿微信动态添加本地图片
- Android(安卓)显示SVG格式图片