iOS手机竖着拍的照片被旋转了90°的原因以及解决方案 | 您所在的位置:网站首页 › ios传输照片到安卓怎么传不了 › iOS手机竖着拍的照片被旋转了90°的原因以及解决方案 |
最近项目发现ios竖屏拍照上传图片文件时候,照片自动选中为横屏。 经过测试发现,只有iOS手机竖着拍的照片才会出现这样的问题,而iOS手机横着拍的照片、Android手机拍的照片以及通过屏幕截图、网络下载等途径获得的图片都不会产生这个问题。 经过查找资料发现需要引入了一个叫做 exif.js 的库来实现旋转角度的纠正,它提供了js读取图像的原始数据的功能扩展,例如:拍照方向、相机设备型号、拍摄时间、ISO 感光度、GPS 地理位置等数据。而拍照方向就是关键所在! exif.js 获取图像的拍照方向的代码如下: EXIF.getData(IMG_FILE, function () { // IMG_FILE为图像数据 var orientation = EXIF.getTag(this, "Orientation"); console.log("Orientation:" + orientation); // 拍照方向 });获取拍照方向的结果为1-8的数字: 这个表格代表什么意义?我们来看第一行,值为1时,右边两列的值分别为:Row #0 is Top,Column #0 is Left side,其实很好理解,它表示照片的第一行位于顶端,而第一列位于左侧,那么这张照片自然就是以正常角度拍摄的。 而这8种结果,就是第一行与第一列所在的位置的8种组合。 测试发现 (1)iOS手机横着拍的照片,照片方向显示正常。 (2) iOS手机竖着拍的照片,照片旋转了90度 测试发现照片Orientaion信息为:1、3、6、8四种状态。 我们在前端对图片进行像素处理或者drawInRect等操作之后,照片的Orientaion信息,即为拍照方向信息被删除了,所以iOS手机竖着拍的照片又回到了横着的状态,看起来也就是逆时针旋转 |
CopyRight 2018-2019 实验室设备网 版权所有 |