如何检测旋转UIImage的当前方向?

时间:2015-04-01 04:09:21

标签: ios objective-c iphone uiimage

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

拍完照片后,我必须从原始图像裁剪缩略图以制作头像图标。但如果用户在风景中拍摄照片,那就不好了。

步骤:

  1. 开启相机。
  2. 将iPhone向右旋转(使相机处于横向模式)。
  3. 拍照。
  4. 我的UIImage方向不好。因此,缩略图并不好。
  5. 如何检测旋转UIImage的方向?

4 个答案:

答案 0 :(得分:2)

尝试以下代码

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

    }
else   // Portrait
    {

    }

答案 1 :(得分:1)

UIImage具有size属性。您可以使用此功能查找height的{​​{1}}和width

因此,如果image> height然后width处于纵向其他景观

答案 2 :(得分:1)

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

[[UIDevice currentDevice] orientation]

答案 3 :(得分:0)

使用此:

#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];
}