android 读取的图片旋转90度_图片采集的方向问题

本文介绍了在iOS开发中遇到的图片采集后旋转90度的问题,深入解析UIImageOrientation和AVCaptureVideoOrientation,指出问题根源在于相机原始方向与预期不符。解决方法是在采集时对图片进行逆操作,确保图片数据与显示方向一致。
摘要由CSDN通过智能技术生成

657fb63108188daec92aaaaeecdae4fb.png

作者 | Seacen,目前在校生一枚,热衷于iOS开发,正在不断学习与探索当中。在平时喜欢运动、阅读、分享生活。

刚开始使用AVFoundation进行采集的时候,经常会发现采集回来的图片方向不对。一般我们都是垂直(HOME键在底部)操作手机,但是在手机用相册或者在电脑上点开采集的图片时,都会发现图片逆时针旋转了90度。为了发现问题的所在,我们需要了解一下通常在图片采集中我们会遇到的各种方向。

图片方向 UIImageOrientation

日常开发中,UIImage是一个使用频率很高的类,但是一般我们并不太在意他的方向问题。我们可以通过imageOrientation属性获取UIImage的图片方向,即UIImageOrientation。该方向总共有八种情况,用于表示当前图片的方向状态:

  • UIImageOrientationUp: 方向正确

  • UIImageOrientationDown: 旋转180度

  • UIImageOrientationLeft: 逆时针旋转90度

  • UIImageOrientationRight: 顺时针旋转90度

  • UIImageOrientationUpMirrored: 水平镜像

  • UIImageOrientationDownMirrored: 旋转180度 + 水平镜像

  • UIImageOrientationLeftMirrored: 逆时针旋转90度 + 垂直镜像

  • UIImageOrientationRightMirrored: 顺时针旋转90度 + 垂直镜像

在平时我们并没有发现UIImage的显示方向有问题,是因为它在显示的时候会根据当前图片的imageOrientation属性,进行相应的转换,即逆操作。如果值是UIImageOrientationLeft则表示图片在显示的时候,需要顺时针旋转90度。

简单来说,UIImageOrientation就是告诉我们该图像的方向属于什么状态,在显示时候是需要做一个逆操作来让图像真正变成我们想要的方向。

回到文章一开始的问题,图片逆时针旋转了90度是因为当前的图像的像素点数据是真的逆时针旋转了90度。虽然整个图片中是有图片方向这个属性的,但是在用文件显示图片的过程中,系统并不会根据该属性进行逆操作,而是耿直的直接显示了。

视频方向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值