iphone手机上使用lrz压缩之后图片旋转的问题
无意中打开以前做的一个头像上传页面,发现一个很奇怪的问题,以前是用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压缩之后图片旋转的问题相关推荐
- ios保存gif到相册_怎么将GIF动态图保存到iPhone手机上【详细方法】
很多iPhone用户都在询问:iphone如何保存GIF动态图?关于这个问题,小编尝试了不少方法之后,发现秘诀有两个.一个是你的iPhone系统必须是IOS7以上(含IOS7),另外一个秘诀就是需要& ...
- android手机照片设壁纸太大,Android手机上设置一个特定的图片作为壁纸会导致手机崩溃...
上周,我们报道了在一些Android手机上设置一个特定的图片作为壁纸会导致手机崩溃,并陷入显示开关的循环中,使其无法通过锁定屏幕.它影响了大多数安卓手机,尤其是三星智能手机. 人们发现问题在于图像的格 ...
- 手机端php mime设置,php,_如何使用MIME协议配合表单在iphone手机上下载文件?,php - phpStudy...
如何使用MIME协议配合表单在iphone手机上下载文件? 做了一个在线下载音乐网站的工具,使用PHP编写,包含MIME协议中的Content-type&Content-Disposition ...
- 如何在iPhone手机上安装ipa(应用安装包)
问题描述:如何在iPhone手机上安装ipa? 解答:利用第三方软件安装,例如:pp助手 过程: 1.安装pp助手mac版(PC版),网址:http://pro.25pp.com/ 2.打开软件,若提 ...
- 如何录制iPhone手机上的视频
有一些app有一些不错的视频,可不让下载,那是否可以录制下来呢?答案是肯定的. 请按照以下步骤进行操作,至于更详细的,就看具体软件的向导了. 1.在iPhone手机上通过appsotre安装" ...
- iphone手机上卸载非主界面上的软件
近日在iphone手机上卸载非主界面上的软件,发现原来在"设置"里的卸载选项消失了.后来通过左右滑动,进入有手电筒图标的界面,发现有一个与财经相关的小框,里面显示了非主界面的app ...
- android iphone 记事本,苹果iPhone手机上有哪些便签记事本类app值得推荐?
原标题:苹果iPhone手机上有哪些便签记事本类app值得推荐? 随着手机硬件的升级以及移动互联网的快速发展,手机的功能是越来越完善了.现在的手机,早就已经不再是一款普通的通话工具了,更多是我们日常生 ...
- iphone手机可不可以运行java_只要一招 就能在iPhone手机上运行安卓系统
原标题:只要一招 就能在iPhone手机上运行安卓系统 在某宝和某东有许多iPhone配件,其中不乏一些神器让你的iPhone如虎添翼,而最近国外科技大V就在某东淘到了一款iPhone手机神器,这能让 ...
- iPhone手机使用:如何在iPhone手机上安装未授信的App
目前由于iPhone手机的普及,其iPhone手机的出屏率也越来越高,但是由于iPhone手机本身知识产权的问题,导致所有想在iPhone手机上使用的App软件,都必须首先通过且只能通过苹果公司的&q ...
最新文章
- 活动报名 | 因果科学与Casual AI读书会
- We Chall-Prime Factory-Writeup
- php添加gd扩展,centos下为php添加gd扩展
- sqlserver使用存储过程发送http请求
- vs2005's addin folder
- NLP技术中的Tokenization
- eclipse maven jetty启动修改默认端口
- DataList分页技术-- PagedDataSource类实现DataList和Repeater的分页效果
- bind merge r 和join_R语言并行读取csv:地表最快csv合并方法
- es6删除数组某一项_精学手撕系列——数组扁平化
- leetcode刷题——415. 字符串相加
- 【教程】2分钟搭建Jetbrains系列的Linux授权服务器
- 图像识别中——目标分割、目标识别、目标检测和目标跟踪的区别
- STM32F103ZET6利用DAC产生噪声
- jquery的函数介绍和使用
- 萤火虫小程序_漫展情报蛋趣携福利来萤火虫IDO漫展咯
- linux如何打开22端口?如何开启ssh远程链接
- 编程实现更改文件夹图标
- 云原生微服务架构实战精讲第三节 示例用户场景分析和领域驱动DDD
- 捋一捋dubbo配置