【问题标题】:UIImagePickerController: Check if returned image is in landscape or portrait? [duplicate]UIImagePickerController:检查返回的图像是横向还是纵向? [复制]
【发布时间】:2013-04-15 07:09:26
【问题描述】:

因此,UIImagePickerController 不支持横向。但是,有一部分应用程序必须将来自控制器的图像识别为纵向或横向格式。

到目前为止,当使用 UIImagePickerController 从我的库中导入图像时,我可以处理这个问题。我只是比较 UIImage 的宽度和高度。但是,当我使用 UIImagePickerController 捕获图像时,此功能将无法正常工作。

UIImagePickerController 是否可以提供一些额外信息来确定它是否是在横向模式下拍摄的?有没有一种创造性的方式来模拟使用 UIImagePickerController 拍摄照片的此功能?

【问题讨论】:

  • UIImagePickerController 可以支持横向。创建您自己的UIImagePickerController 子类并覆盖supportedInterfaceOrientations(适用于iOS 6)和shouldAutorotateToInterfaceOrientation:(适用于iOS 5)方法。
  • @rmaddy 这个评论和 imageOrientation 属性基本上解决了我所有的问题,谢谢!

标签: ios objective-c cocoa-touch uiimagepickercontroller landscape


【解决方案1】:

如果你需要修复它,我用它来检查和修复方向。

switch (image.imageOrientation) {
    case UIImageOrientationDown:
    case UIImageOrientationDownMirrored:
        transform = CGAffineTransformTranslate(transform, imageSize.width, imageSize.height);
        transform = CGAffineTransformRotate(transform, M_PI);
        break;

    case UIImageOrientationLeft:
    case UIImageOrientationLeftMirrored:
        transform = CGAffineTransformTranslate(transform, imageSize.width, 0);
        transform = CGAffineTransformRotate(transform, M_PI_2);
        break;

    case UIImageOrientationRight:
    case UIImageOrientationRightMirrored:
        transform = CGAffineTransformTranslate(transform, 0, imageSize.height);
        transform = CGAffineTransformRotate(transform, -M_PI_2);
        break;
    case UIImageOrientationUp:
    case UIImageOrientationUpMirrored:
        break;
}
/////////////// or u just do it in this way:
if (image.imageOrientation == UIImageOrientationUp) {
    NSLog(@"portrait");
} else if (image.imageOrientation == UIImageOrientationLeft || image.imageOrientation == UIImageOrientationRight) {
    NSLog(@"landscape");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多