UIImageWriteToSavedPhotosAlbum不保存

时间:2013-11-11 20:01:34

标签: ios objective-c

我正在尝试将当前在我的图片视图中的图像保存到相机胶卷。我试图保存的图像在图像视图中完美显示,通过[mainImage setImage:outputImage];然而,当我尝试按下保存图像的按钮时:

- (IBAction)saveImage:(id)sender {

    UIImageWriteToSavedPhotosAlbum([mainImage image], self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

}

-(void)image:(UIImage*)image didFinishSavingWithError:(NSError *)error contextInfo:(void*)contextInfo{
    NSLog(@"%@", [error localizedDescription]);
}

相机胶卷为空。我正在使用iOS7模拟器。任何帮助将不胜感激!

编辑:断言也没有说什么。

〜Carpetfizz

2 个答案:

答案 0 :(得分:1)

我有类似的问题,并寻找答案。虽然我不确定这是完全相同的原因,但我希望这可以给你一点见解。

我的建议是检查[mainImage图像]。即使它在图像视图中完美显示,它也可能返回零。

在我的情况下,我应该使用info[UIImagePickerControllerOriginalImage]而不是info[UIImagePickerControllerEditedImage],它会返回nil,这就是为什么它从未保存过。

答案 1 :(得分:0)

这花了我一段时间才能弄清楚...

我不确定原因为何,但是如果您要保存的UIImage得到CIImage(即image.cgImage == nil)的支持,UIImageWriteToSavedPhotosAlbum将会成功完成在完成处理程序中带有一个nil错误对象,但照片中什么都不会显示。

在这种情况下,您可以将UIImage的{​​{1}}转换为CIImage Swift 4.1 ):

CGImage

然后转换回// this could also be made into an extension func cgImage(from ciImage: CIImage) -> CGImage? { let context = CIContext(options: nil) return context.createCGImage(ciImage, from: ciImage.extent) } (这两个步骤可以合并):

UIImage

我希望这种解决方案可以使某人免于因这个问题导致我的困扰。