IOS拍照图片预览旋转90度怎么用JS处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了IOS拍照图片预览旋转90度怎么用JS处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1468字,纯文字阅读大概需要3分钟。
内容图文
这次给大家带来IOS拍照图片预览旋转90度怎么用JS处理,IOS拍照图片预览旋转90度用JS处理的注意事项有哪些,下面就是实战案例,一起来看一下。
解决此问题需要引入一个第三方 JS 库: exif.js 下载地址:https://github.com/exif-js/exif-js 通过exif.js 我们可以获取到图片的元信息,这其中就包括照片的拍照方向。
而 exif.js 给出的照片方向属性,IOS中通过 exif.js ,获取拍照的图片的方向,返回的值为 6, 也就是上图最左边的 F 的情况。 这也正是我们的bug所在。 因此我们通过判断方向的值来做相应的处理,如果值为 6 ,则我们对图片进行旋转矫正。
具体代码如下:
//获取图片方向 function getPhotoOrientation(img) { var orient; EXIF.getData(img, function () { orient = EXIF.getTag(this, 'Orientation'); }); return orient; }
接下来我们将上篇文章中的压缩函数修改如下:
//图片压缩 function compress(img, width, height, ratio) { var canvas, ctx, img64, orient; ??? //获取图片方向 orient = getPhotoOrientation(img); canvas = document.createElement('canvas'); canvas.width = width; canvas.height = height; ctx = canvas.getContext("2d"); //如果图片方向等于6 ,则旋转矫正,反之则不做处理 if (orient == 6) { ctx.save(); ctx.translate(width / 2, height / 2); ctx.rotate(90 * Math.PI / 180); ctx.drawImage(img, 0 - height / 2, 0 - width / 2, height, width); ctx.restore(); } else { ctx.drawImage(img, 0, 0, width, height); } img64 = canvas.toDataURL("image/jpeg", ratio); return img64; }
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
以上就是IOS拍照图片预览旋转90度怎么用JS处理的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的IOS拍照图片预览旋转90度怎么用JS处理全部内容,希望文章能够帮你解决IOS拍照图片预览旋转90度怎么用JS处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。