1

デバイスのカメラからの画像に対して複数の CoreImage フィルタを実行していますが、結果をカメラ ロールに保存する際に予期しない問題が発生しました。画像操作の結果は であり、CIImageALAssetsLibrary に保存できるデータ型はCGImageRefまたは(それぞれおよびNSDataを介して) です。writeImageToSavedPhotosAlbum:metadata:completionBlock:writeImageDataToSavedPhotosAlbum:metadata:completionBlock:

些細な作業のように思えますが、CIImage(JPEG 圧縮を使用して) 写真ライブラリに書き込むことができる使用可能なデータ型に my を変換する有効な方法が見つかりません。

編集:画像メタデータも保存したいので、単純な UIImage 保存手法のいくつかを除外します。

4

2 に答える 2

1

これを試して :

-(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);
                        }];
于 2013-01-15T19:33:24.513 に答える
0

シンプルで、UIImage オブジェクトを作成して使用しますinitWithCIImage:。その後、新しい UIImage を に渡すことができますUIImageWriteToSavedPhotosAlbum()

UIImage *image = [[UIImage alloc] initWithCIImage:myCIImage];
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
于 2013-01-15T18:41:19.357 に答える