有没有办法检测拍摄图像时手机的方向?

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

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

最佳答案

你可以使用 myImage.imageOrientation ,它会给你 UIImageOrientation,

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

通过访问信息字典 [info objectForKey:@"Orientation"];

注意:这不会直接与 UIImageOrientation 相关,相关性如下。

- (UIImageOrientation)orientationFromEXIF:(int)exif
{
UIImageOrientation newOrientation;
开关(exif)
{
情况1:
newOrientation = UIImageOrientationUp;
休息;
案例3:
newOrientation = UIImageOrientationDown;
休息;
案例8:
newOrientation = UIImageOrientationLeft;
休息;
案例6:
newOrientation = UIImageOrientationRight;
休息;
案例2:
newOrientation = UIImageOrientationUpMirrored;
休息;
案例4:
newOrientation = UIImageOrientationDownMirrored;
休息;
案例5:
newOrientation = UIImageOrientationLeftMirrored;
休息;
案例7:
newOrientation = UIImageOrientationRightMirrored;
休息;
}
返回新方向;
}

但是你最好使用 .imageOrientation

关于iPhone,如何在拍摄时检测图像的方向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5928257/

10-09 08:06