您的位置:首页 > 其它

解决ionic在手机上拍照图片旋转的问题

2017-08-24 12:13 176 查看
ionic项目使用手机拍照后图片在安卓手机上显示是旋转了90度的,这个时候需要借助外部js-----exif.js

1、先下载 exif.js 到项目中,用 npm 命令行:

npm install exif-js --save

2、然后在index.html引入:

<script src="exif.js"></script>

3、将exif.js文件复制到项目根目录下www文件夹中:

{项目目录}\www

4、html文件中写入:

<img #imgElement src="../assets/icon/3.jpg" (load)="getInfo()" [ngStyle]="{'transform': 'rotate(' + rorateAngle + 'deg)'}">

5、ts文件中写入:
import { Component, ViewChild, ElementRef, OnInit } from '@angular/core'
import { EXIF } from 'exif-js'旋转图片的方法:
getInfo() {
console.log(this.imgElement.nativeElement)
let that = this
EXIF.getData(this.imgElement.nativeElement, function(){
const imgInfo = EXIF.getAllTags(this)
const imgRotate = EXIF.getTag(this, 'Orientation')
console.log(imgInfo)
console.log(imgRotate)

switch (imgRotate) {
// 顺时针旋转90度
case 6:
that.rorateAngle = 90
break;
// 逆时针旋转90度
case 8:
that.rorateAngle = -90
break;
case 3:
that.rorateAngle = 180
break;
}
console.log(that.rorateAngle)
})
注意: 因为图片完全加载好才能获取到信息进行旋转,所以要把方法放到load中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息