下载exif.js

npm install exif-js --save

引入exif.js

import EXIF from 'src/utils/exif-js';

//旋转图片到正常

const _rotateImg = (imgFile) => {

return new Promise((resolve, reject) => {

EXIF.getData(imgFile, function () {

let exifTags = EXIF.getAllTags(this);

let reader = new FileReader();

reader.readAsDataURL(imgFile);

reader.onload = e => {

let imgData = e.target.result;

// 8 表示 顺时针转了90

// 3 表示 转了 180

// 6 表示 逆时针转了90

if (

exifTags.Orientation == 8 ||

exifTags.Orientation == 3 ||

exifTags.Orientation == 6

) {

//翻转

//获取原始图片大小

const img = new Image();

img.src = imgData;

img.onload = function () {

let cvs = document.createElement('canvas');

let ctx = cvs.getContext('2d');

//如果旋转90

if (

exifTags.Orientation == 8 ||

exifTags.Orientation == 6

) {

cvs.width = img.height;

cvs.height = img.width;

} else {

cvs.width = img.width;

cvs.height = img.height;

}

if (exifTags.Orientation == 6) {

//原图逆时针转了90, 所以要顺时针旋转90

ctx.rotate(Math.PI / 180 * 90);

ctx.drawImage(

img,

0,

0,

img.width,

img.height,

0,

-img.height,

img.width,

img.height

);

}

if (exifTags.Orientation == 3) {

//原图逆时针转了180, 所以顺时针旋转180

ctx.rotate(Math.PI / 180 * 180);

ctx.drawImage(

img,

0,

0,

img.width,

img.height,

-img.width,

-img.height,

img.width,

img.height

);

}

if (exifTags.Orientation == 8) {

//原图顺时针旋转了90, 所以要你时针旋转90

ctx.rotate(Math.PI / 180 * -90);

ctx.drawImage(

img,

0,

0,

img.width,

img.height,

-img.width,

0,

img.width,

img.height

);

}

resolve(cvs.toDataURL('image/png'));

}

}

else {

resolve(imgData);

}

}

});

});

}

exif.js html图片旋转,exif.js 实现图片旋转到正常相关推荐

  1. exif.js html图片旋转,解决图片显示 Exif.js更改图片的显示方向

    没什么文字直接上代码 //这是一个解决exif更改脱方向的一个js文件 // 应用前先npm install exif-js --save或者直接引入exif-js 调用方法 // let baseD ...

  2. js获取图片的EXIF,解决图片旋转问题

    相信大家在做项目的时候会遇到在canvas里加入图片时,图片发生90°,180°的旋转.当时的你肯定时懵逼的,为毛. 其实这就是图片的EXIF搞的鬼. 什么是EXIF 简单来说,Exif 信息就是由数 ...

  3. JS获取图片的EXIF信息+纠正图片方向

    前端图片处理碰到的一个离奇 bug , 关于图片的 EXIF 信息,特地记录下来 . 然后使用一下代码可以获取Orientation信息,并纠正Orientation带来的图片旋转问题 // from ...

  4. html5+php调用android手机图片,html5+exif.js+canvas+php实现手机上传图片,图片损坏无法打开...

    上传图片,图片损坏无法打开,图片路径也是正确的, function selectFileImage(fileObj) { var file = fileObj.files['0']; //图片方向角 ...

  5. vue 创建图片坐标点_利用vue+fabric.js获取图片坐标,并实现图片拖拽、旋转、拉伸等功能...

    什么是Fabric.js? Fabric.js是一个可以简化Canvas程序编写的库. Fabric.js为Canvas提供所缺少的对象模型, svg parser, 交互和一整套其他不可或缺的工具. ...

  6. js截取图片 裁剪图片之cropper.js插件用法详解

    js截取图片 裁剪图片之cropper.js插件用法详解 源码:https://github.com/fengyuanchen/cropper 引入+使用 <link href="/p ...

  7. 在web中如何调整上传过的图片方向 (exif)

    前提: 相机中拍的照片放到web上不会自动识别方向,如有些竖向显示的照片放到web上横向显示.这些照片在windows上是正确显示的.但是web不会自动旋转照片到正确方向.下面我们通过两种方法来实现这 ...

  8. 图片裁剪的js有哪些(整理)

    图片裁剪的js有哪些(整理) 一.总结 一句话总结:如果用了amaze框架就去amaze框架的插件库里面找图片裁剪插件,如果没用,jcrop和cropper都不错. 1.amazeui的插件库中有很多 ...

  9. php exif信息,php如何给jpg图片写入exif信息?

    在写一个php把图片方向根据exif旋转过来的功能,功能是做好了,但是旋转之后的图片文件exif信息都没了,因为我用imagejpeg重写了图片,请问怎么把exif写回去? 贴一下我旋转图片的代码: ...

  10. Html显示缩略图点击展示,JS点击缩略图整屏居中放大图片效果

    需要实现的效果图: 今天开发的时候,遇到要点击缩略图之后居中显示图片的大图查看(大致效果如上图所示)~想了好几种实现方式,最开始的时候,是想通过animate来点击图片进行显示,可是后来当我想要让放大 ...

最新文章

  1. 光盘压制:八种加密方法保护光盘数据安全
  2. 调试笔记--keil 断点调试小技巧
  3. 【XAF问题】多个属性验证RuleUniqueValue
  4. autoreleasing的用法介绍:
  5. Spring Boot 之 itext导出pdf下载
  6. hdfs里的文件下载HDFS之fsimage、metadata、edits、fstime(二十七)
  7. Eclipse和Intel idea的常用技巧
  8. 创建钩子(Hook)
  9. ubuntu终端执行shell脚本报command not found解决方法
  10. 从二叉搜索树到平衡二叉搜索树
  11. typora字体颜色及字体背景颜色快捷方式(亲测实用有效)
  12. Xcode的插件的路径
  13. 去掉内容中的所有全部html标签。
  14. java中多线程常见面试题
  15. 微信号、微信公众号、微信开放平台、微信商户、微信支付、移动应用申请流程
  16. hdu4565 so easy 矩阵
  17. Redis应用之限制访问频率
  18. android音频降噪webrtc
  19. 路由器和交换机用什么线连接?
  20. win10 查看已保存无线密码的方法

热门文章

  1. 别再瞎找了,设计师日常工作需要的软件都在这里了
  2. python最强脚本工具_8种常用的Python工具
  3. 成都信息工程大学c语言题库,成都信息工程学院C语言考试题及答案.docx
  4. CPU Cache Line:CPU缓存行/缓存块
  5. 程序员一般都浏览这些网站,不仅仅提升编程水平!
  6. __nonnull((1)) 未完待续
  7. 简单php修改mysql数据类型_MySQL入门很简单—MySQL数据类型
  8. slotformatcombinations_R15 38.331 无线资源控制(RRC)协议规范.pdf
  9. refs win10_Win10PE版本改为专业工作站版开启refs支持工具
  10. python接口自动化参数化_python接口自动化6-参数化关联