如何从UIImagePicker检测图像是否为横向

4Ge*_*lOf 0 uiimagepickercontroller ios

我使用以下代码进行检查,但它不起作用..即使在横向拍摄的图像上也总是返回纵向

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

    //dismiss imagepicker controller
    [self dismissViewControllerAnimated:NO completion:nil];

    fishingSpotChosenImage = [info objectForKey:UIImagePickerControllerOriginalImage];

    if (fishingSpotChosenImage.imageOrientation == UIImageOrientationUp) {
        NSLog(@"portrait");
    } else if (fishingSpotChosenImage.imageOrientation == UIImageOrientationLeft || fishingSpotChosenImage.imageOrientation == UIImageOrientationRight) {
        NSLog(@"landscape");
    }
  }
Run Code Online (Sandbox Code Playgroud)

我假设它不起作用,因为选择时图像实际上是纵向的,所以我如何检测图像何时具有如下图所示的黑条。在此处输入图片说明

Lyn*_*ott 5

是的,在这种情况下,您的“横向”图像方向仍然是“向上”,因为图像是右侧向上的。

如果您只关心相机的矩形长宽比为4:3或3:4的图像,则可以只将图像宽度与图像高度进行比较,以查看图像的宽度是否大于身高,反之亦然UIImage。财产,例如

if (fishingSpotChosenImage.size.height > fishingSpotChosenImage.size.width) {
    NSLog(@"portrait");
} else {
    NSLog(@"landscape");
}
Run Code Online (Sandbox Code Playgroud)