繁体   English   中英

iOS将CIImage保存到相机胶卷

[英]iOS save CIImage to Camera Roll

我正在设备摄像头的图像上运行几个CoreImage滤镜,遇到了意外的麻烦,无法将结果保存到“相机胶卷”中。 我的图像处理的结果是CIImage ,我可以保存到ALAssetsLibrary中的数据类型是CGImageRefNSData (分别通过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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM