android 三星手机拍照旋转90度,解决三星拍照上传照片被旋转90度,和三星相机崩溃...
刚刚想起来前几天面试的时候遇到的一个问题,
问题大概是这样的做拍照上传图片功能的时候,在三星手机上拍出的照片是旋转了90度的,应该如何解决这个问题。因为之前没有遇到过这种问题,当时我回答的是给图片做一个ObjectAnimator的rotation动画。结果这个是错误的。 在这里做一个记录吧,防止遇到这样的问题。
造成这个问题的原因是三星堆Android相机单独做了优化。
要解决这个问题我们需要根据图片的路径读取照片EXIF(Exchangeable Image File 可交换图像文件)信息中的旋转角度。
通过下面的代码可以拿到手机拍照的图片的旋转角度,三星的是90度,而其他的手机旋转角度为0。
/
* 读取照片exif信息中的旋转角度
* @param path 照片路径
* @return角度
*/
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;
}
拿到图片的旋转角度就好解决了,根据被旋转了的角度旋转回来就好了。 代码如下。
public static Bitmap toturn(Bitmap img){
Matrix matrix = new Matrix();
matrix.postRotate(+90); /翻转90度/
int width = img.getWidth();
int height =img.getHeight();
img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true);
return img;
}
再说一下Android调用三星相机崩溃的问题。
原因是因为三星手机在拍照的时候会做横竖屏切换,对Activity的生命周期造成了影响。解决问题很简单在拍照所在的Activity的AndroidManifest.xml文件中配置
android:name="com.ldm.test.PhotoActivity"
android:configChanges="orientation|keyboardHidden" />
使得横竖屏切换时不会重新调用各个生命周期方法。只会执行onConfigurationChanged方法。
解决方法来自于网络,如有侵权联系本人删除。
android 三星手机拍照旋转90度,解决三星拍照上传照片被旋转90度,和三星相机崩溃...相关推荐
- exif.js解决ios手机上传照片后显示为旋转90度问题(兼容ios13.4之前的版本 )
exif.js解决ios手机上传照片后显示为旋转90度问题(兼容ios13.4 ) 问题描述: 在做手机移动端app时,发现iOS12.5.1版本(iphone6)上传照片出现顺时针旋转90问题,ip ...
- vant 上传照片 压缩 旋转
html 代码 <label for='uploadOne' class='photo-main' ><div class="show"><div c ...
- 三星手机拍照,上传照片或者下载导致图片旋转90°的解决办法。
项目需求. 因为项目中需要对拍照之后的图片进行上传. (这也是一个简单的问题) 但是就是三星手机(三星note3),出现拍照之后照片旋转了九十度. 然后我们上传上去,然后通过其他手机请求url再次显示 ...
- android上传图片被旋转,input上传照片旋转解决办法
需求很简单:h5拍照上传照片,然后显示出来 问题在:上传之后的图片在PC,IOS端均能正常显示,Android端显示的则是被旋转90度的. 直接上代码 下面这个方法传入file对象,然后会去除掉照片中 ...
- android 拍照上传照片(新)
前段时间写过一片关于照片上传的文章,但是后来发现用那种方式上传的图片是经过android系统处理过的,并不是原图,也就是说经过压缩过的,图片会变得很小,今天我就是为了解决这个问题用另外一种方式实现. ...
- android 解决小米手机上选择照片路径为null的问题
之前做了一个获取相册选择图片的功能,后来测试人员在小米的手机 测试时出现崩溃现象.自己就在网上查找资料,发现是小米的获取图片路径的代码与其他的手机不一样,于是修改了代码,解决了这个问题,这里记录一下. ...
- android小米手机上传图片,android 解决小米手机上选择照片路径为null的问题
释放双眼,带上耳机,听听看~! 之前做了一个获取相册选择图片的功能,后来测试人员在小米的手机 测试时出现崩溃现象.自己就在网上查找资料,发现是小米的获取图片路径的代码与其他的手机不一样,于是修改了代码 ...
- 解决上传图片自动旋转的问题以及对图片进行压缩上传
1. 关于图片自动旋转原因 在使用PS或者其他软件旋转图片时,图片旋转了,但Orientation不会改变,由于我们使用的图片预览器能够预处理图片,使其看起来与旋转后一致,但上传图片时,浏览器并不会预 ...
- 简单的 Android 拍照并显示以及获取路径后上传
简单的 Android 拍照并显示以及获取路径后上传 Activity 中的代码,我只贴出重要的事件部分代码 public void doPhoto(View view){destoryBimap() ...
最新文章
- 基于ffmpeg和libvlc的视频剪辑、播放器
- c#求三角形面积周长公式_此题求三角形的面积,多数学生完全没思路,解题关键是用该知识点...
- 摩托罗拉v8对讲机驱动软件_摩托罗拉数字机如何设置“个性”提示音
- Apache Mesos:编写您自己的分布式框架
- 干货 | 深度学习的可解释性研究(一):让模型「说人话」
- 24 反转链表(第3章 高质量的代码-代码的鲁棒性)
- php趣味编程 - php 余弦曲线
- 基于Hadoop平台使用MapReduce统计某银行信用卡违约用户数量
- 反客为主:巧妙用grldr冒名顶替ntldr引导XP/Ubuntu
- CTF密码学解题思路
- keras学习笔记-黑白照片自动着色的神经网络-Alpha版
- 互联网高手教你如何搜集你想要的信息
- Oracle数据库获取当前自然周,当前周的起始和结束日期
- word2016 表格标尺偏移问题
- Oracle一个诡异的临时表空间不足的问题
- 新版第三方橘子/威客接单系统网站源码+有充值API接口
- 变频器故障代码诊断与维修
- Axure-图标图片元件库
- matlab ext2int函数,Ext2 核心 API 中文详解.pdf
- keepass2android 远程,关于KeePass实现mstsc远程桌面(rdp协议)的自动登录
热门文章
- php控制硬件电源开关模块,如何使用纯CSS实现电源开关控件(附源码)
- android自定义搜索栏,Android自定义View实现搜索框(SearchView)功能
- 记录--uniapp自定义相机 自定义界面拍照录像闪光灯切换摄像头
- 深度学习-各种归一化(Batch Norm、Layer Norm、Group Norm、InstanceNorm、Spatially-Adaptive Norm)
- visio导出pdf图片存在多余白边和边框
- cv曲线面积的意义_评价标准专题:常见的TP、TN、FP、FN和PR、ROC曲线到底是什么...
- 面试之开发知识点总结
- 930页!熬夜整理了一份包含算法+数据结构+大厂面经 高分原创文章的电子书送给你
- 天九共享集团:重视人才培育 履行幸福责任
- 安装node-v4.5.0-x86.msi时提示node.js setup wizard ended prematurely Win7安装nodejs失败解决方法