2011-11-21 69 views
2

我正在開發iOS 5中的iPhone應用程序。我使用UIImagePickerController讓用戶選擇圖像,我需要知道圖像的方向。UIImage imageOrientation返回0

我對UIImagePickerControllerDelegate方法下面的代碼時,圖像已被選中:

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ 
    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType]; 
    UIImage *originalImage = nil; 
    UIImage *editedImage = nil; 

    // Handle a still image picked from a photo album 
    if (CFStringCompare ((__bridge CFStringRef) mediaType, kUTTypeImage, 0) 
     == kCFCompareEqualTo) { 

     editedImage = (UIImage *)[info objectForKey:UIImagePickerControllerEditedImage]; 
     originalImage = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage]; 

     NSLog(@"editedImage.imageOrientation = %d", editedImage.imageOrientation); 
     NSLog(@"originalImage.imageOrientation = %d", originalImage.imageOrientation); 

     imageToUse = nil; 
     if (editedImage) 
      imageToUse = editedImage; 
     else 
      imageToUse = originalImage; 

    } 
} 

有誰知道爲什麼在NSLog的指令imageOrientation值始終爲0?我嘗試過使用橫向和縱向圖像,結果始終如一。

所選圖像不是零,因爲我在UIImageView中顯示沒有問題。

謝謝。

回答

1

圖像方向爲而不是指示圖像是否爲縱向或橫向格式。

方向指定圖像數據在顯示之前如何有效地轉換/旋轉。通常,例如,相機拍攝的圖像的數據格式是相同的,而不管當時相機的方向如何。也就是說,以縱向形式拍攝的圖像可以以其'原始'形式顯示爲旋轉的橫向圖像(當然取決於相機)。

爲了克服這個問題,圖像元數據更新爲圖像拍攝時相機的方向信息。掌握了這些信息後,UIUmage可以通過根據元數據進行旋轉來正確顯示圖像。

您的需求,以找出是否該圖像是縱向還是橫向,在它的最終格式,只是寬度比較高度:)

+0

好的,明白。我會比較寬度和高度。謝謝。 –