香港马会开奖结果,六合彩资料 六开彩开奖现场直播 六合彩资料大全 地下六合彩 六合彩图库 六合彩图 香港六合彩网站 六合彩大全 香港六合彩图库 六合彩开 六合彩挂牌 香港六合彩挂牌 六合彩票 六合彩现场直播 六合彩玄机 香港六合彩公司 www.dq-ccg.com六合彩官网 香港六合彩特码 六合彩管家婆 六合彩走势图 六合彩结果 六合彩马报 香港六合彩现场直播 六合彩白小姐 白小姐六合彩 六合彩直播 六合彩特码资料 六合彩免费资料 六合彩曾道人 香港六合彩资料大全 六合彩开码结果 香港六合彩管家婆 六合彩综合资料 香港六合彩网址 六合彩彩图 香港六合彩图 六合彩信息 今晚六合彩开什么 六合彩开什么 六合彩图纸 香港六合彩特码资料 香港马会六合彩 六合彩图片 六合彩预测 香港六合彩网 香港六合彩直播 香港地下六合彩 香港六合彩官方网站 六合彩全年资料 六合彩脑筋急转弯 六合彩官方网站 六合彩查询 六合彩开码现场 六合彩报 香港六合彩论坛 六合彩天线宝宝 香港六合彩结果

Baidu

一聚教程网:一个值得你收藏的教程网站

JS解决IOS中拍照图片预览旋转90度BUG的问题

时间:2017-10-10 09:57:33 编辑:猪哥 来源:转载

上篇文章中做了图片压缩上传,但是在IOS真机测试的时候,发现图片预览的时候自动逆时针旋转了90度。对于这个bug,我完全不知道问题出在哪里,接下来就是面向百度编程了。通过度娘找到了相关资料,解决方法记录在此。这个问题的具体因素其实我还是不清楚是为何导致的,只有IOS和部分三星手机会出现此bug。 绝大部分的安卓机并无此问题。

解决此问题需要引入一个第三方 JS 库: exif.js 下载地址:https://github.com/exif-js/exif-js 通过exif.js 我们可以获取到图片的元信息,这其中就包括照片的拍照方向。

而 exif.js 给出的照片方向属性如下图:

JS解决IOS中拍照图片预览旋转90度BUG的问题

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;
}

OK, 问题解决!

文章评论

热门栏目

香港马会开奖结果,六合彩资料 六开彩开奖现场直播 六合彩资料大全 地下六合彩 六合彩图库 六合彩图 香港六合彩网站 六合彩大全 香港六合彩图库 六合彩开 六合彩挂牌 香港六合彩挂牌 六合彩票 六合彩现场直播 六合彩玄机 香港六合彩公司 六合彩官网 香港六合彩特码 六合彩管家婆 六合彩走势图 六合彩结果 六合彩马报 香港六合彩现场直播 六合彩白小姐 白小姐六合彩 www.dq-ccg.com六合彩直播 六合彩特码资料 六合彩免费资料 六合彩曾道人 香港六合彩资料大全 六合彩开码结果 香港六合彩管家婆 六合彩综合资料 香港六合彩网址 六合彩彩图 香港六合彩图 六合彩信息 今晚六合彩开什么 六合彩开什么 六合彩图纸 香港六合彩特码资料 香港马会六合彩 六合彩图片 六合彩预测 香港六合彩网 香港六合彩直播 香港地下六合彩 香港六合彩官方网站 六合彩全年资料 六合彩脑筋急转弯 六合彩官方网站 六合彩查询 六合彩开码现场 六合彩报 香港六合彩论坛 六合彩天线宝宝 香港六合彩结果