2011-02-03 187 views
8

我從iPhone/iPad庫中加載照片,其中大多數都處於肖像模式,我想知道如何以橫向或縱向模式檢查照片?如何知道橫向或縱向模式下的照片?

+0

做的傻瓜的證明呢?您可以通過Viren的答案獲得當前的設備定位。否則,比較照片的高度和寬度以得到其縱橫比。但是沒有辦法知道實際的方向。 – jakev 2011-02-03 00:32:36

回答

12

使用UIImage實例的imageOrientation屬性。它會返回你的常量之一these

實施例:

的UIImage *圖像= //從庫加載

if (image.imageOrientation == UIImageOrientationUp) { 
    NSLog(@"portrait"); 
} else if (image.imageOrientation == UIImageOrientationLeft || image.imageOrientation == UIImageOrientationRight) { 
    NSLog(@"landscape"); 
} 
+2

這幫助我開始了專輯的選擇,並且我想爲照片添加一些補充信息,但我沒有意識到它們是兩個完全不同的東西!當用戶使用iPhone的相機拍攝快照時,圖像不是直立的,而是實際上逆時針旋轉90度。所以,如果你想最終在'NSLog'的'if'塊中(@「portrait」);`那麼你會測試'UIImageOrientationLeft || UIImageOrientationRight || UIImageOrientationLeftMirrored || UIImageOrientationRightMirrored`和其餘的將是`風景` – pulkitsinghal 2012-12-09 15:51:49

1

我測試這段代碼上幾十實際圖像的iPhone 4上運行iOS 5.0和能夠成功使它們全部都是縱向模式。這是你如何修復/檢查

if (image.imageOrientation == UIImageOrientationUp || 
     image.imageOrientation == UIImageOrientationDown) 
    { 
     NSLog(@"Image is in Landscape Fix it to portrait ...."); 

     backgroundView.frame = self.view.bounds; 
     backgroundView.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; 
     backgroundView.contentMode = UIViewContentModeScaleAspectFill; 
    } 
    else 
    { 
     NSLog(@"Image is in Portrait everything is fine ..."); 
    } 

這裏是做這個檢查你想知道的設備或的照片的方向

-(void)imagePickerController:(UIImagePickerController *)picker 
     didFinishPickingImage : (UIImage *)image 
       editingInfo:(NSDictionary *)editingInfo 
{ 

    // Get the data for the image 
    NSData* imageData = UIImageJPEGRepresentation(image, 1.0); 




    if ([UIImage imageWithData:imageData].size.width > [UIImage imageWithData:imageData].size.height) 
    { 
     NSLog(@"Select Image is in Landscape Mode ...."); 

    } 
    else 
    { 
     NSLog(@"Select Image is in Portrait Mode ..."); 

    } 
} 
相關問題