无意中打开以前做的一个头像上传页面,发现一个很奇怪的问题,以前是用lrz插件做的图片上传和压缩处理,当时没有任何问题,在手机IPhone升级到13.4之后就发现,图片居然转了90度,当时感觉很懵逼,后来发现是因为自从 iOS 更新到 13.4.1 后,浏览器支持自动回正了,解决方案如下

只需要增加一个检测方法,判断当前浏览器是否支持自动回正,如果支持则不处理,如果不支持则沿用之前的旋转方法。

// 用一张特殊的图片来检测当前浏览器是否对带 EXIF 信息的图片进行回正
// 方法来源: https://github.com/blueimp/JavaScript-Load-Image// 一张 2x1 的 JPEG 图片, EXIF Orientation: 6
const testAutoOrientationImageURL ='data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' +'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' +'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==';
let isImageAutomaticRotation;export function detectImageAutomaticRotation() {return new Promise((resolve) => {if (isImageAutomaticRotation === undefined) {const img = new Image();img.onload = () => {// 如果图片变成 1x2,说明浏览器对图片进行了回正isImageAutomaticRotation = img.width === 1 && img.height === 2;resolve(isImageAutomaticRotation);};img.src = testAutoOrientationImageURL;} else {resolve(isImageAutomaticRotation);}});
}

iphone手机上使用lrz压缩之后图片旋转的问题相关推荐

  1. ios保存gif到相册_怎么将GIF动态图保存到iPhone手机上【详细方法】

    很多iPhone用户都在询问:iphone如何保存GIF动态图?关于这个问题,小编尝试了不少方法之后,发现秘诀有两个.一个是你的iPhone系统必须是IOS7以上(含IOS7),另外一个秘诀就是需要& ...

  2. android手机照片设壁纸太大,Android手机上设置一个特定的图片作为壁纸会导致手机崩溃...

    上周,我们报道了在一些Android手机上设置一个特定的图片作为壁纸会导致手机崩溃,并陷入显示开关的循环中,使其无法通过锁定屏幕.它影响了大多数安卓手机,尤其是三星智能手机. 人们发现问题在于图像的格 ...

  3. 手机端php mime设置,php,_如何使用MIME协议配合表单在iphone手机上下载文件?,php - phpStudy...

    如何使用MIME协议配合表单在iphone手机上下载文件? 做了一个在线下载音乐网站的工具,使用PHP编写,包含MIME协议中的Content-type&Content-Disposition ...

  4. 如何在iPhone手机上安装ipa(应用安装包)

    问题描述:如何在iPhone手机上安装ipa? 解答:利用第三方软件安装,例如:pp助手 过程: 1.安装pp助手mac版(PC版),网址:http://pro.25pp.com/ 2.打开软件,若提 ...

  5. 如何录制iPhone手机上的视频

    有一些app有一些不错的视频,可不让下载,那是否可以录制下来呢?答案是肯定的. 请按照以下步骤进行操作,至于更详细的,就看具体软件的向导了. 1.在iPhone手机上通过appsotre安装" ...

  6. iphone手机上卸载非主界面上的软件

    近日在iphone手机上卸载非主界面上的软件,发现原来在"设置"里的卸载选项消失了.后来通过左右滑动,进入有手电筒图标的界面,发现有一个与财经相关的小框,里面显示了非主界面的app ...

  7. android iphone 记事本,苹果iPhone手机上有哪些便签记事本类app值得推荐?

    原标题:苹果iPhone手机上有哪些便签记事本类app值得推荐? 随着手机硬件的升级以及移动互联网的快速发展,手机的功能是越来越完善了.现在的手机,早就已经不再是一款普通的通话工具了,更多是我们日常生 ...

  8. iphone手机可不可以运行java_只要一招 就能在iPhone手机上运行安卓系统

    原标题:只要一招 就能在iPhone手机上运行安卓系统 在某宝和某东有许多iPhone配件,其中不乏一些神器让你的iPhone如虎添翼,而最近国外科技大V就在某东淘到了一款iPhone手机神器,这能让 ...

  9. iPhone手机使用:如何在iPhone手机上安装未授信的App

    目前由于iPhone手机的普及,其iPhone手机的出屏率也越来越高,但是由于iPhone手机本身知识产权的问题,导致所有想在iPhone手机上使用的App软件,都必须首先通过且只能通过苹果公司的&q ...

最新文章

  1. 活动报名 | 因果科学与Casual AI读书会
  2. We Chall-Prime Factory-Writeup
  3. php添加gd扩展,centos下为php添加gd扩展
  4. sqlserver使用存储过程发送http请求
  5. vs2005's addin folder
  6. NLP技术中的Tokenization
  7. eclipse maven jetty启动修改默认端口
  8. DataList分页技术-- PagedDataSource类实现DataList和Repeater的分页效果
  9. bind merge r 和join_R语言并行读取csv:地表最快csv合并方法
  10. es6删除数组某一项_精学手撕系列——数组扁平化
  11. leetcode刷题——415. 字符串相加
  12. 【教程】2分钟搭建Jetbrains系列的Linux授权服务器
  13. 图像识别中——目标分割、目标识别、目标检测和目标跟踪的区别
  14. STM32F103ZET6利用DAC产生噪声
  15. jquery的函数介绍和使用
  16. 萤火虫小程序_漫展情报蛋趣携福利来萤火虫IDO漫展咯
  17. linux如何打开22端口?如何开启ssh远程链接
  18. 编程实现更改文件夹图标
  19. 云原生微服务架构实战精讲第三节 示例用户场景分析和领域驱动DDD
  20. 捋一捋dubbo配置

热门文章

  1. 某证券项目软件测试面试过程总结
  2. CoreJava学习-练习大全
  3. Linux/CentOS系统Tomcat 7/8.5/9部署SSL证书,端口为8443能够访问成功,换成443却访问失败
  4. vue中style的scoped属性这样用,修改第三方组件iview 或 element 样式
  5. Java版开源工作流Jflow从表数据数据源导入设置
  6. 大豆 NLR 基因与大豆抗病性
  7. 《机甲战士5》如何让该游戏系列焕然一新
  8. 情人节拷问:恋爱都谈不好,还谈什么客户?
  9. 学会聪明人的思考方式-解读《聪明人是如何思考的》
  10. MavenCentral发布指南