站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        如何解決IOS中html5上傳圖片方向問題?

        這篇文章主要介紹了IOS中html5上傳圖片方向問題解決方法的相關(guān)資料,需要的朋友可以參考下

        用html5編寫圖片裁切上傳,在iphone手機(jī)上可能會(huì)遇到圖片方向錯(cuò)誤問題,在此把解決方法和大家分享一下,
        用到了html5的 FileReader和Canvas,如果還沒有接觸的同學(xué),先了解一下其方法。

         //此方法為file input元素的change事件   function change(){    var file = this.files[0];    var orientation;    //EXIF js 可以讀取圖片的元信息 https://github.com/exif-js/exif-js    EXIF.getData(file,function(){      orientation=EXIF.getTag(this,'Orientation');    });    var reader = new FileReader();    reader.onload = function(e) {        getImgData(this.result,orientation,function(data){        //這里可以使用校正后的圖片data了       });     }    reader.readAsDataURL(file);  }
        // @param {string} img 圖片的base64  // @param {int} dir exif獲取的方向信息  // @param {function} next 回調(diào)方法,返回校正方向后的base64  function getImgData(img,dir,next){   var image=new Image();   image.onload=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大小,確定旋轉(zhuǎn)角度,iphone默認(rèn)的是home鍵在右方的橫屏拍攝方式    switch(dir){      //iphone橫屏拍攝,此時(shí)home鍵在左側(cè)      case 3:        degree=180;        drawWidth=-width;        drawHeight=-height;        break;      //iphone豎屏拍攝,此時(shí)home鍵在下方(正常拿手機(jī)的方向)      case 6:        canvas.width=height;        canvas.height=width;         degree=90;        drawWidth=width;        drawHeight=-height;        break;      //iphone豎屏拍攝,此時(shí)home鍵在上方      case 8:        canvas.width=height;        canvas.height=width;         degree=270;        drawWidth=-width;        drawHeight=height;        break;    }    //使用canvas旋轉(zhuǎn)校正    context.rotate(degree*Math.PI/180);    context.drawImage(this,0,0,drawWidth,drawHeight);    //返回校正圖片    next(canvas.toDataURL("image/jpeg",.8));   }   image.src=img;  }

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 亚洲精品和日本精品| 老汉精品免费AV在线播放| 无码国产精品一区二区免费模式| 国产成人精品怡红院在线观看| 国精品无码一区二区三区在线| 男女男精品网站免费观看| 国产成人精品综合在线观看| 99久久99这里只有免费的精品| 无码国产69精品久久久久网站| 久久久久国产精品三级网| 91亚洲精品自在在线观看| 99精品人妻无码专区在线视频区| 亚洲欧美精品AAAAAA片| 欧美精品黑人粗大视频| 国产在AJ精品| 国产免费久久精品99久久| 天天爽夜夜爽精品视频app| WWW国产精品内射老师| 色婷婷在线精品国自产拍| 宅男在线国产精品无码| 日韩精品无码永久免费网站| 久久国产精品一区| 精品无码综合一区| 国产精品第一页在线| 99爱在线视频这里只有精品| 华人在线精品免费观看| 国产精品久久成人影院| 99精品久久久久中文字幕| 国产精品免费AV片在线观看| 精品无人区一区二区三区| 精品视频无码一区二区三区| 精品无码一区二区三区爱欲| 亚洲高清专区日韩精品| 久久香综合精品久久伊人| 久久Av无码精品人妻系列| 久久精品国产亚洲av高清漫画| 亚洲国产小视频精品久久久三级| 亚洲精品国产日韩无码AV永久免费网 | 久久人人爽人人精品视频| 青青久久精品国产免费看| 精品露脸国产偷人在视频|