2011-02-03 21 views
8

iPhone/iPad kitaplığından fotoğraf yüklüyorum, bunların çoğu Portre modunda, bilmek istiyorum Fotoğrafı Yatay veya Dikey modda nasıl kontrol edebilirim?Fotoğrafı Yatay mı yoksa Portre modunda mı tanıyorsunuz?

+0

cihazın veya fotoğrafın yönünü bilmek istiyorsun bu çeki yapmanın bir aptal geçirmez bir yoldur nasıl olacağı? Mevcut cihaz yönünü Viren'in cevabı ile alabilirsiniz. Aksi takdirde, fotoğrafın yüksekliğini ve genişliğini en boy oranını elde edin. Fakat asıl yönlendirmeyi bilmenin bir yolu olmazdı. – jakev

cevap

12

UIImage örneklerinin imageOrientation özelliğini kullanın. Sizi these sabitlerinden birine döndürecek.

Örnek:

UIImage * image = // iOS 5.0 çalıştıran iPhone 4 üzerindeki gerçek resmin onlarca üzerine bu kod parçası test edilmiş ve başarıyla bunları yapmak başardı

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

Bu, albüm seçimi ile başladım ve fotoğraf çekimi için ek tamamlayıcı bilgiler eklemek istiyorum. Bir kullanıcı iPhone’un kamerasıyla anlık görüntü aldığında, resim dik değildir ancak aslında saat yönünün tersine 90 derece döndürülür. Yani eğer 'NSLog (@ "portre") için' if 'bloğunda sonlandırmak istiyorsanız, o zaman' UIImageOrientationLeft 'için test edersiniz. UIImageOrientationRight || UIImageOrientationLeftMirrored || UIImageOrientationRightMirrored' ve geri kalanı "manzara" olacak – pulkitsinghal

1

kütüphanesinden yüklenmiş hepsi dikey modda. Bu/düzeltmek İşte

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

    } 
} 
İlgili konular