2011-02-03 16 views
8

iPhone/iPadライブラリから写真を読み込み、そのほとんどはポートレートモードで、知りたい横または縦のモードで写真を確認するにはどうすればよいですか?風景モードまたはポートレートモードの写真を確認するにはどうすればよいですか?

+0

このチェックを行うための馬鹿証拠の方法であるあなたは、デバイスのか、写真の向きを知りたいですか?あなたはVirenの答えで現在のデバイス方向を得ることができます。それ以外の場合は、写真の高さと幅を比較してアスペクト比を取得します。しかし、実際の方向性を知る方法はありません。 – jakev

答えて

12

imageOrientationプロパティをUIImageインスタンスにします。それはあなたにtheseの定数のうちの1つを返します。

例:ライブラリ

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

これはアルバムの選択を開始するのに役立ちました。写真撮影の補足情報を追加したいのですが、2つの全く異なることはわかりませんでした。ユーザーがiPhoneのカメラでスナップショットを撮ると、画像は直立していませんが、実際には反時計回りに90度回転しています。したがって、 'NSLog(@" portrait ");'の 'if'ブロックで終わりたいのであれば、' UIImageOrientationLeft || UIImageOrientationRight || UIImageOrientationLeftMirrored || UIImageOrientationRightMirrored'と残りは 'landscape'です – pulkitsinghal

1

からロード

UIImage *画像= //私はiOSの5.0を実行しているiPhone 4上の実際の画像の数十にコードのこの部分をテストし、正常にそれらを作ることができましたすべてポートレートモードです。これは、あなたがここに

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 ..."); 

    } 
} 
関連する問題