ios html5 exif,IOS中html5上传图片方向问题解决方法

// @param {string} img 图片的base64

// @param {int} dir exif获取的方向信息

// @param {function} next 回调方法,返回校正方向后的base64

function getImgData(img,dir,next){

var image=new Image();

image.οnlοad=function(){

var degree=0,drawWidth,drawHeight,width,height;

drawWidth=this.naturalWidth;

drawHeight=this.naturalHeight;

//以下改变一下图片大小

var maxSide = Math.max(drawWidth, drawHeight);

if (maxSide > 1024) {

var minSide = Math.min(drawWidth, drawHeight);

minSide = minSide / maxSide * 1024;

maxSide = 1024;

if (drawWidth > drawHeight) {

drawWidth = maxSide;

drawHeight = minSide;

} else {

drawWidth = minSide;

drawHeight = maxSide;

}

}

var canvas=document.createElement('canvas');

canvas.width=width=drawWidth;

canvas.height=height=drawHeight;

var context=canvas.getContext('2d');

//判断图片方向,重置canvas大小,确定旋转角度,iphone默认的是home键在右方的横屏拍摄方式

switch(dir){

//iphone横屏拍摄,此时home键在左侧

case 3:

degree=180;

drawWidth=-width;

drawHeight=-height;

break;

//iphone竖屏拍摄,此时home键在下方(正常拿手机的方向)

case 6:

canvas.width=height;

canvas.height=width;

degree=90;

drawWidth=width;

drawHeight=-height;

break;

//iphone竖屏拍摄,此时home键在上方

case 8:

canvas.width=height;

canvas.height=width;

degree=270;

drawWidth=-width;

drawHeight=height;

break;

}

//使用canvas旋转校正

context.rotate(degree*Math.PI/180);

context.drawImage(this,0,0,drawWidth,drawHeight);

//返回校正图片

next(canvas.toDataURL("image/jpeg",.8));

}

image.src=img;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值