iPhone,如何在拍摄时检测图像的方向

时间:2011-05-08 15:11:45

标签: iphone objective-c xcode interface-builder

有没有办法检测拍摄照片时手机的方向?

我在UIView上有一个UIImageView,我正在使用UIImagePicker拍摄照片或从相机胶卷中选择一张。但是如果图像是以横向模式拍摄的,我想要检测到这一点并调整图像视图的大小以阻止图像被拉伸并看起来很愚蠢。

有没有人知道这是否可行(我假设是这样,因为照片应用程序执行此操作),如果是这样,我将如何在代码/界面构建器设置中执行此操作?

3 个答案:

答案 0 :(得分:8)

您可以使用myImage.imageOrientation,它将为您提供UIImageOrientation,

或者,如果由于某种原因,您希望直接在“imagePickerController:didFinishPickingMediaWithInfo:”方法中使用EXIF信息。

访问信息词典 [info objectForKey:@“Orientation”] ;

注意:这与UIImageOrientation无直接关系如下。

- (UIImageOrientation)orientationFromEXIF:(int)exif
{  
    UIImageOrientation newOrientation;  
    switch (exif)
    {  
    case 1:  
        newOrientation = UIImageOrientationUp;  
        break;  
    case 3:  
        newOrientation = UIImageOrientationDown;  
        break;  
    case 8:  
        newOrientation = UIImageOrientationLeft;  
        break;  
    case 6:  
        newOrientation = UIImageOrientationRight;  
        break;  
    case 2:  
        newOrientation = UIImageOrientationUpMirrored;  
        break;  
    case 4:  
        newOrientation = UIImageOrientationDownMirrored;  
        break;  
    case 5:  
        newOrientation = UIImageOrientationLeftMirrored;  
        break;  
    case 7:  
        newOrientation = UIImageOrientationRightMirrored;  
        break;  
    }  
    return newOrientation;  
}

但你最好使用.imageOrientation

答案 1 :(得分:2)

在Swift中检查此代码 -

git branch -d BranchB

答案 2 :(得分:1)

查看@property(非原子,只读)UIImageOrientation imageOrientation  在UIImage。