最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IOS中html5上傳圖片方向問(wèn)題解決方法

 更新時(shí)間:2016年01月27日 09:52:04   投稿:hebedich  
這篇文章主要介紹了IOS中html5上傳圖片方向問(wèn)題解決方法的相關(guān)資料,需要的朋友可以參考下

用html5編寫(xiě)圖片裁切上傳,在iphone手機(jī)上可能會(huì)遇到圖片方向錯(cuò)誤問(wèn)題,在此把解決方法和大家分享一下,
用到了html5的 FileReader和Canvas,如果還沒(méi)有接觸的同學(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;
}

相關(guān)文章

  • iOS小數(shù)取整的方法(ceil?floor?round)示例

    iOS小數(shù)取整的方法(ceil?floor?round)示例

    這篇文章主要為大家介紹了iOS小數(shù)取整的方法(ceil?floor?round)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 關(guān)于適配iOS11和iPhoneX的一些事

    關(guān)于適配iOS11和iPhoneX的一些事

    隨著iOS11和xcode9剛開(kāi)始正式發(fā)布,小編也迫不及待的更新了xcode9,手機(jī)也順利更新到iOS,也終于見(jiàn)到iPhone X 的真面,怎么適配是個(gè)問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于適配iOS11和iPhoneX的一些事,需要的朋友可以參考下。
    2017-10-10
  • iOS開(kāi)發(fā)TableView網(wǎng)絡(luò)請(qǐng)求及展示預(yù)加載實(shí)現(xiàn)示例

    iOS開(kāi)發(fā)TableView網(wǎng)絡(luò)請(qǐng)求及展示預(yù)加載實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了iOS開(kāi)發(fā)TableView網(wǎng)絡(luò)請(qǐng)求及展示預(yù)加載實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Objective-C中利用正則去除非數(shù)字字母漢字方法實(shí)例

    Objective-C中利用正則去除非數(shù)字字母漢字方法實(shí)例

    正則表達(dá)式對(duì)我們?nèi)粘i_(kāi)發(fā)來(lái)說(shuō)是必不可少的,下面這篇文章主要給大家介紹了關(guān)于Objective-C中如何利用正則去除非數(shù)字字母漢字的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • IOS 開(kāi)發(fā)之對(duì)象為空的判斷(nil、null)詳解

    IOS 開(kāi)發(fā)之對(duì)象為空的判斷(nil、null)詳解

    這篇文章主要介紹了IOS 開(kāi)發(fā)之對(duì)象為空的判斷(nil、null)詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼

    iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼

    如果你剛剛拍攝了圖片,在使用微信/QQ發(fā)生消息時(shí)會(huì)顯示“你可能要發(fā)送的圖片”,這個(gè)功能非常人性化,怎么實(shí)現(xiàn)的呢?下面小編給大家分享iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼,一起看看吧
    2017-03-03
  • iOS實(shí)現(xiàn)底部彈出PopupWindow效果 iOS改變背景透明效果

    iOS實(shí)現(xiàn)底部彈出PopupWindow效果 iOS改變背景透明效果

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)底部彈出PopupWindow效果,iOS改變背景透明效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • yii框架分類(lèi)樹(shù)擴(kuò)展示例

    yii框架分類(lèi)樹(shù)擴(kuò)展示例

    這篇文章主要介紹了yii框架分類(lèi)樹(shù)擴(kuò)展示例,提供兩種方式的分類(lèi)樹(shù)格式,表格和下拉框形式的樹(shù)形結(jié)構(gòu),需要的朋友可以參考下
    2014-04-04
  • iOS11實(shí)現(xiàn)App內(nèi)自動(dòng)連接Wi-Fi的方法

    iOS11實(shí)現(xiàn)App內(nèi)自動(dòng)連接Wi-Fi的方法

    這篇文章主要給大家介紹了關(guān)于iOS11實(shí)現(xiàn)App內(nèi)自動(dòng)連接Wi-Fi的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • iOS實(shí)現(xiàn)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)的3種方法示例

    iOS實(shí)現(xiàn)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)的3種方法示例

    這篇文章主要給大家介紹了關(guān)于iOS實(shí)現(xiàn)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)的3種方法,文中通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論

甘德县| 怀化市| 化德县| 汕头市| 平泉县| 阳泉市| 府谷县| 景德镇市| 台中市| 且末县| 麻江县| 永平县| 钦州市| 丹阳市| 山东| 留坝县| 海南省| 额尔古纳市| 马龙县| 盘山县| 永州市| 泽州县| 钦州市| 蓝田县| 周宁县| 德阳市| 大名县| 阿城市| 佛冈县| 南投市| 宁河县| 湖南省| 兴隆县| 突泉县| 宁夏| 浦东新区| 凭祥市| 唐河县| 合川市| 南川市| 荥阳市|