Search code examples
iosobjective-cuiimageviewuiimagepickercontrollernsdata

How to convert image which taken by camera (UIImagePickerControllerSourceTypeCamera) to NSData in iOS


Code that i used:

-(IBAction) getPhoto:(id) sender {
    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    if((UIButton *) sender == choosePhotoBtn) {
        picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    } else {
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }

    [self presentModalViewController:picker animated:YES];
}

following is the function to place image which was taken by using UIImagePickerControllerSourceTypeCamera in image view:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissModalViewControllerAnimated:YES];
    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

}

Solution

  • Try this

    UIImage *img          = [info objectForKey:UIImagePickerControllerOriginalImage];
    img                   = [info valueForKey:UIImagePickerControllerEditedImage];
    self.imageView.image  = img;
    NSData *imageData     = UIImagePNGRepresentation(img);
    

    This will work.