iOS拍照方向

iOS拍照方向问题,自己很长一段时间也不清楚,现在整理一下。

三个问题:

1. iPhone拍照时那个方向是正(UIImageOrientationUp) ?

2. 为什么UIImageView方向显示正确,上传到服务器后却不正确 ?

3. 如何调整方向?

 

第一个问题:iPhone拍照究竟那个是正方向?

 

(正方向)UIImageOrientationUp

技术分享            

 

而我们平常拍照的方向则是 (UIImageOrientationRight)

技术分享

 

有没有很吃惊!

 

第二个问题: 为什么UIImageView方向显示正确?

拍照时,相机会将此时手机的orientation属性存储到UIImage的imageOrientation中。

UIImageView很聪明,在显示时它会根据UIImage对象的imageOrientation属性调整最终显示的方向。所以不管我们拍照时那个方向,它显示的都正常。

但实际上UIImage的图像数据却是按照物理相机的角度存储。So~

 

第三个问题:如何调整方向?

@interface UIImage (Utility)

- (UIImage *)orientationCorrectedImage;

@end

@implementation UIImage (Utility)

- (UIImage *)orientationCorrectedImage
{
    UIImage * resultImage = nil;
    resultImage = self;
    UIImageOrientation imageOrientation = self.imageOrientation;
    if(imageOrientation != UIImageOrientationUp){
        UIGraphicsBeginImageContext(self.size);
        [self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
        resultImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    }
    return resultImage;
}
@end

 

示例代码(了解更多):https://github.com/github-xiaogang/CameraDemo/

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。