<input class="sr-only" id="inputImage" name="file" type="file" accept="image/*"  οnchange="getFile()"> 上传照片

<canvas id="canvas" style="height: 0px"></canvas>

需要引入EXIF.js

function getFile() {// alert(1111);let _this = thislet img = document.getElementById('image')let file = document.getElementById('inputImage').files[0]let reader = new FileReader()_this.finish = 1EXIF.getData(file, function () {console.log(1111);let orientation = EXIF.getTag(this, 'Orientation')console.log(orientation);reader.addEventListener('load', function () {console.log(1111);let image = new Image()image.src = reader.resultsessionStorage.setItem('imgBase', reader.result);console.log(reader.result);let canvas = document.getElementById('canvas') //  处理位置不对的图片let ctx = canvas.getContext('2d')image.onload = function () {if (navigator.userAgent.match(/iphone|ipod|ipad|62\.0\.3202.84\sMobile\sSafari\/537\.36\sMicroMessenger|57\.0\.2987\.132\sMQQBrowser/i)) {if (orientation != '' && orientation != undefined && orientation != 1) {switch (orientation) {case 6: // 需要顺时针(向左)90度旋转canvas.width = image.heightcanvas.height = image.widthctx.rotate(90 * Math.PI / 180)ctx.drawImage(this, 0, -image.height)breakcase 8: // 需要逆时针(向右)90度旋转canvas.width = image.heightcanvas.height = image.widthctx.rotate(270 * Math.PI / 180)ctx.drawImage(this, -image.width, 0)breakcase 3: // 需要180度旋转canvas.width = image.widthcanvas.height = image.heightctx.rotate(180 * Math.PI / 180)ctx.drawImage(this, -image.width, -image.height)break}} else {canvas.width = image.widthcanvas.height = image.heightctx.drawImage(this, 0, 0, image.width, image.height)}} else {canvas.width = image.widthcanvas.height = image.heightctx.drawImage(this, 0, 0, image.width, image.height)}// Indicator.close()_this.imgsrc = canvas.toDataURL()_this.finish = 0}image.onerror = function () {_this.finish = 0Toast({message: '图片上传错误,请重试', duration: 1500})}}, false)})if (file) {reader.readAsDataURL(file)} else {// Indicator.close()_this.finish = 0}}

  

转载于:https://www.cnblogs.com/web-leader/p/9469400.html

解决ios下拍照自动旋转问题相关推荐

  1. emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题

    场景 解决在移动端拍照,用 canvas 绘图出现图片逆时针旋转 90 度的问题. canvas 在高清屏与retina屏下绘图模糊的问题. 如下图: 就用我老婆来做模特了~ 下图是拍照过后渲染在画布 ...

  2. emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题 1

    场景 解决在移动端拍照,用 canvas 绘图出现图片逆时针旋转 90 度的问题. canvas 在高清屏与retina屏下绘图模糊的问题. 如下图: 就用我老婆来做模特了~ 下图是拍照过后渲染在画布 ...

  3. 解决ios横屏拍照图片自动旋转90度问题

    解决ios横屏拍照图片自动旋转90度问题 参考文章: (1)解决ios横屏拍照图片自动旋转90度问题 (2)https://www.cnblogs.com/lanshengzhong/p/900856 ...

  4. 解决IOS下window.open页面打不开问题

    解决IOS下window.open页面打不开问题 参考文章: (1)解决IOS下window.open页面打不开问题 (2)https://www.cnblogs.com/tangjiao/p/102 ...

  5. 解决iOS下拉回弹方法二

    原文地址:https://segmentfault.com/a/1190000007301527 一篇解决 iOS下拉回弹的文章分享给大家.加了些注释.并且应用在vue中.再次感谢原作者. <t ...

  6. 解决ios下的微信打开的页面背景音乐无法自动播放(转载)

    20160314更新 后面的项目发现,还有两个坑,需要注意下: ·本文的解决方案的核心是利用了 微信/易信 在ready的时候会有个 WeixinJSBridgeReady/YixinJSBridge ...

  7. 解决ios下的微信页面背景音乐无法自动播放问题

    前言 在做各种HTML5场景页面的时候,插入背景音乐是一个很普遍的需求.我们都知道,iOS下的safari是无法自动播放音乐的,以至一直以来形成了一种认知,iOS是无法自动播放媒体资源的.直到微信火爆 ...

  8. html图片逆时针转换,HTML+CSS入门 如何解决iOS下html上传图片被旋转问题

    问题 iOS下,html方式使用上传图片,图片会被旋转.遇到这个问题js是无法解决的,html也没有相应的解决方案.只能放到后台去处理,将旋转的图片再旋转回来.iOS拍摄的图片提供了EXIF信息,Or ...

  9. 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)...

    背景: 本人的一个移动端H5项目,需求如下: 需求一:手机相册选取或拍摄照片后在页面上预览 需求二:然后绘制在canvas画布上 这里,我们先看一个demo(http://jsfiddle.net/q ...

最新文章

  1. UVA 818 Cutting Chains(状压 + 暴搜)题解
  2. spring4声明式事务—02 xml配置方式
  3. Quarkus 0.12.0 发布,下一代 K8s 原生 Java 框架
  4. OpenCV使用霍夫变换进行寻线的实例(附完整代码)
  5. 线程安全与可重入函数
  6. pyHook pyHook3 区别_一般过去时态和现在完成时态之间到底有什么区别?通过一道语法题,帮你彻底讲清楚!...
  7. python如何创建模块视频_Python | 如何创建模块(模块示例)?
  8. Nginx的TCP运行时健康检查
  9. CVPR2021 | 用Transformers无监督预训练进行目标检测
  10. Python day 9(3) 定制类
  11. Apache vs Nginx vs Tomcat vs JBoss vs Jetty
  12. NP、NP-完全、NP-难问题
  13. 跟我学Android之二 第一个程序
  14. 1 Vue的基础语法
  15. SQlite数据库的C编程接口(四) 绑定参数(Bound Parameters) ——《Using SQlite》读书笔记
  16. 微信H5(WAP)支付,遇到的那些坑
  17. HTML+CSS大作业
  18. 集线器、交换机、网桥区别
  19. Python Opencv 简单视频裁剪功能的实现
  20. [bzoj3197][SDOI2013]assassin

热门文章

  1. Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
  2. 余承东感谢库克暖场,华为这次有点狂【附P30上手视频】
  3. Python 递归函数 详解
  4. Centos7的yum配置本地源及利用yum安装google
  5. 男士英文名的寓意 (M~W)
  6. 这世界上有一种鸟是没有脚的
  7. 怎么用计算机画外观设计图片,外观专利对制图跟图片有什么要求?
  8. 所有的android平板,[图]联想推出四款Android平板
  9. python 爬虫 伪装浏览器_python爬虫之伪装浏览器
  10. 2020年有寓意的领证日期_2020年适合领结婚证的日子-2020寓意好的领证吉日-蜜匠婚礼...