[英]iOS save CIImage to Camera Roll
我正在设备摄像头的图像上运行几个CoreImage滤镜,遇到了意外的麻烦,无法将结果保存到“相机胶卷”中。 我的图像处理的结果是CIImage
,我可以保存到ALAssetsLibrary中的数据类型是CGImageRef
或NSData
(分别通过writeImageToSavedPhotosAlbum:metadata:completionBlock:
和writeImageDataToSavedPhotosAlbum:metadata:completionBlock:
。
似乎是一项琐碎的任务,但是我找不到将CIImage
转换为可以写入照片库(使用JPEG压缩)的可用数据类型的可行方法。
编辑:我也想保存图像元数据,以便排除一些简单的UIImage保存技术。
尝试这个 :
-(void)storeImage:(CIImage*)_image
CGImageRef cgImg = [context createCGImage:_image fromRect:[_image extent]];
ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:cgImg
metadata:[_image properties]
completionBlock:^(NSURL *assetURL, NSError *error) {
CGImageRelease(cgImg);
}];
很简单,创建一个UIImage对象并使用initWithCIImage:
然后,您可以将新的UIImage传递给UIImageWriteToSavedPhotosAlbum()
。
UIImage *image = [[UIImage alloc] initWithCIImage:myCIImage];
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.