Android开发之拍照后图片旋转的问题
经过测试,国产手机拍照无问题,国外手机拍照后自动选装90度了看图:主要有Google手机和三星手机都会有这个问题
解决办法也很简单说下思路:
首先获取图片被旋转的角度然后通过matrix.postRotate设置角度即可代码如下:
package com.wyze.mercury.common.utils;import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.media.ExifInterface;
import android.util.Log;import java.io.IOException;/*** @author : xiayiye5* @date : 2021/4/28 17:39*/
public class CommonTools {private static final CommonTools LOCATION_TOOLS = new CommonTools();private CommonTools() {}public static CommonTools getInstance() {return LOCATION_TOOLS;}/*** 读取照片exif信息中的旋转角度** @param path 照片路径* @return 角度*/public 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;default:break;}} catch (IOException e) {Log.e("exception msg", Log.getStackTraceString(e));}return degree;}public Bitmap toReturn(Bitmap img, String path) {Matrix matrix = new Matrix();/*翻转90度*/matrix.postRotate(+readPictureDegree(path));int width = img.getWidth();int height = img.getHeight();img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true);return img;}
}
调用方法:
private fun setUploadImg(rlPicture: ImageView) {imgPath.let {val screenWidth = WpkCommonUtil.getScreenWidth();val decodeFile = BitmapFactory.decodeFile(imgPath)val width = decodeFile.widthval size = width / screenWidthval newOpts = BitmapFactory.Options()newOpts.inJustDecodeBounds = false//设置缩放比例newOpts.inSampleSize = size * 2WpkLogUtil.e("打印缩放比例", "$size =")//重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了val bitmap = BitmapFactory.decodeFile(imgPath, newOpts);rlPicture.setImageBitmap(CommonTools.getInstance().toReturn(bitmap, it))}
看下前后效果图对比:
设置角度之前
设置角度之后
非常感谢原博主:原博主链接
Android开发之拍照后图片旋转的问题相关推荐
- android 5.1拍照后图片镜像处理
这是mtk6735平台的,可能每个平台位置不太一样,但改法基本相同 status_t CamAdapter:: takePicture() 这个函数里面添加 //后摄拍照图片镜像 if(strcmp( ...
- android 4.4拍照后图片镜像处理
此处原来为0 改为1
- android上传图片被旋转,解决android有的手机拍照后上传图片被旋转的问题
需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要把图片上传到服务器 遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的 ...
- android 三星手机拍照旋转90度,解决三星调用系统相机拍照显示图片旋转90度横着的问题...
/** * 调用系统相机拍照工具类 * @author yao * */ public class CaremaUtil { private static String strImgPath = &q ...
- 解决android有的手机拍照后上传图片被旋转的问题
需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要把图片上传到服务器 遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的 ...
- Android添加拍照功能,Android开发实现拍照功能的方法实例解析
本文实例讲述了Android开发实现拍照功能的方法.分享给大家供大家参考,具体如下: 解析: 1)判断是否有摄像头checkCameraHardware(this) 2)获得相机camera = Ca ...
- Android自定义相机拍照、图片裁剪的实现
原文:Android自定义相机拍照.图片裁剪的实现 最近项目里面又要加一个拍照搜题的功能,也就是用户对着不会做的题目拍一张照片,将照片的文字使用ocr识别出来,再调用题库搜索接口搜索出来展示给用户,类 ...
- 解决三星调用系统相机拍照显示图片旋转90度横着的问题
最近项目有个功能是调用系统相机拍照上传图片的功能,发现别的手机都没有ok,只有三星的显示图片很明显是旋转了90度,横着的.后来百度了解是三星对android相机单独做了优化(android碎片化,各种 ...
- android实现相机功能,Android开发实现拍照功能的方法实例解析
本文实例讲述了Android开发实现拍照功能的方法.分享给大家供大家参考,具体如下: 解析: 1)判断是否有摄像头checkCameraHardware(this) 2)获得相机camera = Ca ...
最新文章
- windows 基础及基本软件测试环境搭建
- 河中跳房子(noiopenjudge,noip2015)
- 在网页中使用react
- Java基本语法(12)--分支结构if-else
- go语言os.exit(1)_在Golang中各种永远阻塞的姿势
- 云小课 | 不了解EIP带宽计费规则?看这里!
- 低格硬盘用什么软件_迟来的评测:用了三年后的固态硬盘会变成什么样呢?
- Oracle中 char varchar varchar2的区别
- 2017-2018-1 20155320 实验三——实时系统
- 警告 1 warning C4996: ‘scanf‘: This function or variable may be unsafe.
- php读取oracle,php读取oracle中数据库文件
- JVM常见的七种垃圾收集器的简单比较
- JSON值的类型:数字,字符串,逻辑值,数组,对象,null
- 中兴v5max android5.1,中兴V5Max
- matlab | imcrop手动截图演示
- Could not load requested class
- Python实现借助聚合数据API接口生成某一年的节假日对照表
- Java学习-java中的与或非
- 全球 500 亿条数据被 Elasticsearch 勒索者删除
- android立体3D效果_Android实现八大行星绕太阳3D旋转效果
热门文章
- 【第二期】那些设计漂亮、有创意的电路板!
- struts2 jsp跳转action 404_Struts2 学习笔记(三)
- c语言绘制路面图形代码,道路纵断面绘图程序的开发.pdf
- python编程常见的错误_Python编程时常见的3个错误
- XSS介绍_靶场DVWA,pikachu;其他XSS平台
- 腾讯地图api_数据库API接口的类型及应用场景
- python测试开发django-44.xadmin上传图片和文件
- 菜鸟弹性调度系统的架构设计——阅读心得
- [RN] React Native 实现图片预览
- 2018-2019-2 20175224 实验五《网络编程与安全》实验报告