我正在尝试将当前在我的图片视图中的图像保存到相机胶卷。我试图保存的图像在图像视图中完美显示,通过[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
答案 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
我希望这种解决方案可以使某人免于因这个问题导致我的困扰。