首頁  >  文章  >  web前端  >  IOS拍照圖片預覽旋轉90度怎麼用JS處理

IOS拍照圖片預覽旋轉90度怎麼用JS處理

php中世界最好的语言
php中世界最好的语言原創
2018-04-17 16:43:101628瀏覽

這次帶給大家IOS拍照圖片預覽旋轉90度怎麼用JS處理,IOS拍照圖片預覽旋轉90度用JS處理的注意事項有哪些,以下就是實戰案例,一起來看一下。

解決此問題需要引入一個第三方JS 庫: exif.js 下載地址:https://github.com/exif-js/exif-js 透過exif.js 我們可以獲取到圖片的元信息,這其中就包括照片的拍照方向。

而 exif.js 給的照片方向屬性,IOS中透過 exif.js ,取得拍照的圖片的方向,回傳的值為 6, 也就是上圖最左邊的 F 的情況。這也正是我們的bug所在。因此我們透過判斷方向的值來做相應的處理,如果值為 6 ,則我們對圖片進行旋轉矯正。

具體程式碼如下:

//获取图片方向
function getPhotoOrientation(img) {
   var orient;
   EXIF.getData(img, function () {
      orient = EXIF.getTag(this, 'Orientation');
   });
   return orient;
}

接下來我們將上篇文章中的壓縮函數修改如下:

//图片压缩
function compress(img, width, height, ratio) {
   var canvas, ctx, img64, orient;
    
   //获取图片方向
   orient = getPhotoOrientation(img);
   canvas = document.createElement('canvas');
   canvas.width = width;
   canvas.height = height;
   ctx = canvas.getContext("2d");
   //如果图片方向等于6 ,则旋转矫正,反之则不做处理
   if (orient == 6) {
      ctx.save();
      ctx.translate(width / 2, height / 2);
      ctx.rotate(90 * Math.PI / 180);
      ctx.drawImage(img, 0 - height / 2, 0 - width / 2, height, width);
      ctx.restore();
   } else {
      ctx.drawImage(img, 0, 0, width, height);
   }
   img64 = canvas.toDataURL("image/jpeg", ratio);
   return img64;
}

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:



#

以上是IOS拍照圖片預覽旋轉90度怎麼用JS處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn