日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

解决ios手机上传竖拍照片旋转90度问题

發布時間:2023/12/13 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 解决ios手机上传竖拍照片旋转90度问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

html5+canvas進行移動端手機照片上傳時,發現ios手機上傳豎拍照片會逆時針旋轉90度,橫拍照片無此問題;Android手機沒這個問題。

因此解決這個問題的思路是:獲取到照片拍攝的方向角,對非橫拍的ios照片進行角度旋轉修正。

這里主要利用exif.js讀取照片的拍攝信息。

Exif.js 提供了 JavaScript 讀取圖像的原始數據的功能擴展,例如:拍照方向、相機設備型號、拍攝時間、ISO 感光度、GPS 地理位置等數據。

EXIF 數據主要來自拍攝的照片,多用于移動端開發,PC 端也會用到,此插件兼容主流瀏覽器,IE10 以下不支持。

這里主要用到Orientation屬性。

Orientation屬性說明如下:

在頁面中首先引入exif.js

主要代碼如下:

//獲取照片的元信息(拍攝方向)
  function getPhotoOrientation(img) {
    var orient;
    EXIF.getData(img, function() {
      orient = EXIF.getTag(this, "Orientation");
    });
    return orient;
  }
 //獲取照片的拍攝方向
          var orient = getPhotoOrientation(image);
          //判斷圖片拍攝方向是否旋轉了90度
          if (orient == 6) {
            canvas.width = width * (image.height / image.width);
            canvas.height = width;
            drawer.save();
            drawer.translate(canvas.width / 2, canvas.height / 2);
            drawer.rotate(90 * Math.PI / 180); 
            drawer.drawImage(image, -(canvas.height / 2), -(canvas.width / 2), canvas.height, canvas.width);
            let newImg = canvas.toDataURL("image/jpeg", 1);
            $('.img2').attr("src", newImg);

通過讀取圖片的Orientation屬性如果等于6,則讓它旋轉90度。

參考demo:http://jsfiddle.net/q3011893/k3z5ev26/embedded/

更多詳細內容請訪問https://www.cssge.com/

總結

以上是生活随笔為你收集整理的解决ios手机上传竖拍照片旋转90度问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。