2013-04-07 9 views
6

tam ekran görüntüleri IOS ile özel bir UIImagePickerController oluşturmak, ama yapmak istiyorum birkaç şey vardır Nasıl:Bir resim çekmek için kamerayı kullanacak basit UIImagePickerController var

  • Var

    : (4inch telefonda ise) özel bir kamera UI
  • İşte

UIImagePickerController gösteren benim kodudur yerine 480x640 tam ekran alın Burada

vegörüntü alınıyor zaman içindir:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [imageView setImage:image]; 
} 

Bunu nasıl?

Teşekkür

Sana toplayıcı varsayılan arayüzü üzerinden özel UI eklemek için UIImagePickerController nesnenin cameraOverlayView özelliğini kullanabilirsiniz varsayalım İlk maddedeki için

cevap

8

:

- (IBAction)pick:(id)sender { 
    NSLog(@"abc"); 
    picker = [[UIImagePickerController alloc] init]; 
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
     [picker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
    } else { 
     [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
    } 

    // Add here your custom UI here 
    [picker setCameraOverlayView:self.customCameraOverlayView]; 

    [picker setDelegate:self]; 
    [self presentViewController:picker animated:YES completion:nil]; 

} 

DÜZENLEME

UIImagePickerController ürününü test ettik ve görüntüyü tam boyutlarıyla döndürdüm (PixelXDimension ve PixelYDimension):

UIImagePickerControllerMediaMetadata =  { 
     DPIHeight = 72; 
     DPIWidth = 72; 
     Orientation = 6; 
     "{Exif}" =   { 
      ApertureValue = "2.526068811667588"; 
      BrightnessValue = "-0.5779073354035674"; 
      ColorSpace = 1; 
      DateTimeDigitized = "2013:04:07 22:30:03"; 
      DateTimeOriginal = "2013:04:07 22:30:03"; 
      ExposureMode = 0; 
      ExposureProgram = 2; 
      ExposureTime = "0.05882352941176471"; 
      FNumber = "2.4"; 
      Flash = 24; 
      FocalLenIn35mmFilm = 35; 
      FocalLength = "4.28"; 
      ISOSpeedRatings =    (
       800 
      ); 
      MeteringMode = 3; 
      PixelXDimension = 3264; 
      PixelYDimension = 2448; 
      SceneType = 1; 
      SensingMethod = 2; 
      ShutterSpeedValue = "4.058893689053568"; 
      SubjectArea =    (
       1874, 
       1478, 
       610, 
       612 
      ); 
      WhiteBalance = 0; 
     }; 
     "{TIFF}" =   { 
      DateTime = "2013:04:07 22:30:03"; 
      Make = Apple; 
      Model = "iPhone 4S"; 
      Software = "6.1.3"; 
      XResolution = 72; 
      YResolution = 72; 
     }; 
    }; 

DÜZENLEME Ayrıca

yeniden boyutlandırmak ve konteyner görünüme uygun şekilde içerik modunu görüntülemek için, görüntüye ayarlayabilirsiniz:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [imageView setContentMode:UIViewContentModeScaleAspectFill]; 
    [imageView setImage:image]; 
} 

ve ihtiyacınız kadar bundan sonra imageView uyacak şekilde kontrol cihazını, cihaz ekranını (4 inç veya değil) auto layout veya auto sizing kullanarak dikkate alarak görüntüleyin.

+1

İkinci bölüm işe yaradı, ancak ilk kısımda yer paylaşımı sadece ekranın üstünde. Düğmelerin (fotoğraf simgesi) kendilerini nasıl gördüğünü değiştirmek istiyorum. Bunu nasıl yapardım? –

+1

'showCameraControls' kullanarak varsayılan denetimleri gizleyebilir ve' cameraOverlayView' kullanarak ayarladığınız özel kullanıcı arayüzünüzde, imagePickerController öğesinin 'takePicture' yöntemini çağıran bir eylemle bir düğme ekleyebilirsiniz. – alexcristea

+0

'imageView' nesnesi nereden geldi? – lelelo