问题场景:

1.iOS系统的苹果手机竖屏拍照或者从相册选择竖屏情况下拍的照片上传到tfs服务器安卓手机下载展示的时候是旋转了90°的图片,但是苹果手机展示没有问题.

我去网上进行原因的查找,发现iphone默认横屏拍照才是正确的方向,所以竖屏拍照会携带逆时针旋转90°的信息.

经过多番验证,苹果手机竖屏拍照上传的时候,是存在逆时针旋转90°的标识的,上传到服务器之后返回链接

http://7xrqzv.com1.z0.glb.clouddn.com/mbp-head-image-dev-20042399-1483772239277.png(链接可能失效~~)

直接看在浏览器打开的结果:在IE浏览器上查看是逆时针旋转90°,但是在chrome浏览器上查看是正常的;

下载之后查看的结果:在windows上从任一浏览器下载,利用windows自带的图片查看器查看就是逆时针旋转90°的,利用爱奇艺图片查看器查看就是正常的,但是在Mac上下载,查看都是正常的,下载下来之后存在安卓手机本地相册发现还是旋转90°的图片.

结论:我发现每个系统,软件对于图片的处理是不一样的,有一些是不会对角度进行处理,有角度就让他存在在信息里不去旋转,有一些就按照角度进行旋转,将角度变成0°存在信息里.

解决方案:IOS在上传图片之前首先进行旋转角度信息的检查,将不是0°的情况都改变成0°.

2.部分安卓手机(如MT788,Note2)竖屏拍照直接将图片传过来展示的时候是旋转了90°的图片,但是上传到tfs再下载下来展示的图片又是正常的.

public static Bitmap rotateBitmap(Bitmap b, String filepath) {int degrees = getExifOrientation(filepath);if(degrees != 0 && b != null) {Matrix m = new Matrix();m.setRotate((float)degrees, (float)b.getWidth() / 2.0F, (float)b.getHeight() / 2.0F);try {Bitmap b2 = Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(), m, true);if(b != b2) {b.recycle();b = b2;}} catch (OutOfMemoryError var5) {;}}return b;}
public static int getExifOrientation(String filepath) {short degree = 0;ExifInterface exif = null;try {exif = new ExifInterface(filepath);} catch (IOException var4) {;}if(exif != null) {int orientation = exif.getAttributeInt("Orientation", -1);if(orientation != -1) {switch(orientation) {case 3:degree = 180;case 4:case 5:case 7:default:break;case 6:degree = 90;break;case 8:degree = 270;}}}return degree;}

通过这两个方法,先获取到旋转的角度信息再进行旋转即可解决.

以上是我自己真实遇到的问题,可能在你们开发的过程中也有过类似的但是不完全相同的经历,希望我的解决方案帮助到大家.

Android 手机展示照片 会有90°旋转的问题的解决方案相关推荐

  1. ios android手机传照片大小,实用:Android与iOS手机互传资料小妙招

    很多人头疼,换了手机之后如何把旧手机的资料导入新手机中.尤其是跨系统互导数据,由于iOS相对封闭,即便是iPhone支持蓝牙,但仅仅可以与搭载ios系统的设备进行互传数据:而且,在iOS系统中也并不是 ...

  2. android手机的照片恢复软件,安卓手机照片恢复软件

    安卓手机照片恢复软件,不仅可以恢复电脑上面丢失的照片文件,还可以恢复手机上面丢失的照片文件,要恢复手机上面的照片,先首先把手机连接电脑,或者把手机SD卡插入读卡器,然后接入电脑,再用此软件扫描,既可恢 ...

  3. android手机里照片恢复,安卓手机上误删的照片 要怎样才能找回?

    不论是不是手贱,我们在手机(这里指安卓手机)上误删照片时有发生.对此你可能会觉得无关痛痒,照片没了就没,对我来说也没什么大不了.不过,如果那张照片对你非常重要,或可能藏着一段美好的回忆,而且恰巧你之前 ...

  4. android 蓝牙传输图片吗,如何使用蓝牙将Android手机中的照片和视频副本发送到树莓派...

    步骤1:将Raspberry Pi放入蓝牙设备 完成以下步骤我以前的版本将Raspberry Pi转换为可指导完成此步骤的Bluetooth设备. 步骤2:使Raspberry Pi设备成为Bluet ...

  5. 利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  6. exif.js解决ios手机上传照片后显示为旋转90度问题(兼容ios13.4之前的版本 )

    exif.js解决ios手机上传照片后显示为旋转90度问题(兼容ios13.4 ) 问题描述: 在做手机移动端app时,发现iOS12.5.1版本(iphone6)上传照片出现顺时针旋转90问题,ip ...

  7. Android自定义拍照小米手机拍照照片模糊的问题

    原文地址 昨天同事跟我说了一个bug,让我整了一天,从昨天下午这个时间到今天下午这个时间,哎... 大家都懂的 首先我来说一个bug,我用surfaceView来实现自定义拍照的功能,先来张在geny ...

  8. 三星手机拍照,上传照片或者下载导致图片旋转90°的解决办法。

    项目需求. 因为项目中需要对拍照之后的图片进行上传. (这也是一个简单的问题) 但是就是三星手机(三星note3),出现拍照之后照片旋转了九十度. 然后我们上传上去,然后通过其他手机请求url再次显示 ...

  9. 如何从 Android 手机恢复已删除或丢失的照片

    当 Android 上的照片被意外删除时,您一定会感到难过,不知道该怎么办,尤其是那些珍贵的照片.实际上,现在您不必太担心,因为您可以利用多种方法来恢复 Android 手机上已删除或丢失的照片.其实 ...

最新文章

  1. Java十大bug之——包冲突
  2. go html vue,用Go+Vue.js快速搭建一个Web应用(初级demo)
  3. winform TreeView 节点选择
  4. Redis分布式快速入门
  5. rabbitmq之window环境启动
  6. delphi常用函数大全(转)
  7. 支付宝玉伯:我心目中的优秀API
  8. 程序员「在知乎装逼被怼」,决定用『面试』证明自己
  9. java排序之选择排序
  10. 手机android的文件怎么恢复,手机文件误删除怎么恢复-互盾安卓恢复大师
  11. 华为WLAN基本概述
  12. 2022-2027年中国机动车检测行业发展前景及投资战略咨询报告
  13. 局域网计算机网卡启动,远程启动局域网内电脑
  14. Unity3D学习:结合Kinect进行游戏开发 | 孤舟博客
  15. 如何用好erp系统【ERP】
  16. mysql窗口函数的作用
  17. 什么是软件测试,软件测试究竟是做什么的
  18. TCP FIN_WAIT2定时器
  19. ORACLE DG专题3--手把手部署DG 物理备库
  20. 2022就业环境以及市场分析,职业前景。

热门文章

  1. spring 注入方式和自动装配介绍
  2. ffmpeg相关资料
  3. 程序化发送消息或通知到微信群
  4. webbrowser 设置cookie
  5. C#实现RPC(远程过程调用)
  6. Yahoo邮箱最后登录,成为历史!
  7. 旅行商的背包(二进制优化多重+0/1背包枚举体积))
  8. koa使用setCookies不生效
  9. Win11怎么开启3d加速?
  10. JS设置样式的两种方式