91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決IOS中html5上傳圖片方向問題

發布時間:2020-09-22 12:01:54 來源:億速云 閱讀:286 作者:小新 欄目:web開發

這篇文章主要介紹了怎么解決IOS中html5上傳圖片方向問題,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

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

 //此方法為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 回調方法,返回校正方向后的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大小,確定旋轉角度,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;
}

感謝你能夠認真閱讀完這篇文章,希望小編分享怎么解決IOS中html5上傳圖片方向問題內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肃北| 辽源市| 上林县| 安化县| 襄垣县| 高邮市| 彭山县| 昭平县| 南平市| 石林| 墨竹工卡县| 东乡| 日照市| 讷河市| 靖远县| 错那县| 石城县| 加查县| 濉溪县| 全州县| 朔州市| 温州市| 靖西县| 息烽县| 家居| 当涂县| 拜泉县| 双峰县| 会理县| 志丹县| 读书| 乌鲁木齐县| 罗源县| 大庆市| 黑河市| 望都县| 陕西省| 三亚市| 阜阳市| 曲麻莱县| 左贡县|