iOS 如何将相机 (UIImagePickerControllerSourceTypeCamera) 拍摄的图像转换为 NSData

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

我使用的代码:

-(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];
}

以下是在图像视图中放置使用 UIImagePickerControllerSourceTypeCamera 拍摄的图像的函数:

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

}

获取图像的 NSData

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

NSData *imageData = UIImagePNGRepresentation(image);

这样转换,

NSData *imageData = UIImagePNGRepresentation(image);

如果要转换回来,

UIImage *image= [UIImage imageWithData:imagedata];

试试这个

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

这会起作用。