【问题标题】:How to detect current orientation to rotate UIImage?如何检测当前方向以旋转 UIImage?
【发布时间】:2015-06-05 14:55:52
【问题描述】:

我正在实现拍照功能,但遇到以下问题。

拍照后,我必须从原始图像中裁剪缩略图以制作头像图标。但是横向拍照就不好了。

步骤:

  1. 打开摄像头。
  2. 向右旋转 iPhone(使相机处于横向模式)。
  3. 拍照。
  4. 我得到了方向错误的 UIImage。因此,缩略图不好。

如何检测旋转 UIImage 的方向?

【问题讨论】:

    标签: ios objective-c iphone uiimage


    【解决方案1】:

    使用这个:

    #pragma mark - Image Picker Controller delegate methods
    
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    
        UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
        self.imageView.image = chosenImage;
    
        switch (chosenImage.imageOrientation) {
            case UIImageOrientationUp: //Left
                break;
            case UIImageOrientationDown: //Right
                break;
            case UIImageOrientationLeft: //Down
                break;
            case UIImageOrientationRight: //Up
                break;
            default:
                break;
        }
    
        [picker dismissViewControllerAnimated:YES completion:NULL];
    }
    

    【讨论】:

    【解决方案2】:

    UIImage 有一个size 属性。您可以使用它来查找imageheightwidth

    因此,如果height > width 那么image 是纵向的,否则是横向的

    【讨论】:

    • 感谢您的帮助,但我怎么知道这是右侧风景还是左侧风景?
    • 你是从 UIImagePickerController 中选择图片吗?
    • 不,我使用外部相机库。 github.com/Aevit/SCCaptureCamera/tree/master/…
    • UIImage 仅从相机或照片文件夹中获取图像数据,而不是方向详细信息。图像可以是 png、jpeg 或其他格式,它不知道图像的方向。所以没有办法找到图像是横向还是纵向
    • 但是我们可以在用户处于相机会话时检测当前方向吗?因为有时他们想采用纵向模式,有时采用横向模式。
    【解决方案3】:

    使用此代码获取设备的方向。 根据设备方向,您可以设置图像方向

    [[UIDevice currentDevice] orientation]
    

    【讨论】:

      【解决方案4】:

      试试下面的代码

      if (image.size.width > image.size.height ) // Landscape
          {
      
          }
      else   // Portrait
          {
      
          }
      

      【讨论】:

        猜你喜欢
        • 2010-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-29
        • 1970-01-01
        相关资源
        最近更新 更多