AVAssetsLibrary writeImageDataToSavedPhotosAlbum不工作。

时间:2014-03-19 20:43:10

标签: ios iphone uiimageview nsdata alassetslibrary

问题: 我使用writeImageDataToSavedPhotosAlbum:metadata:completionBlock:

AVAssetsLibrary时遇到了一些问题

问题: 我希望在writeImageToSavedPhotosAlbum:metadata:completionBlock:上使用此功能以避免可能压缩照片库

以下是我的代码示例

CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(self.imageView.image.CGImage));
uint8_t *data = (uint8_t *)CFDataGetBytePtr(pixelData);
NSData *dataTOSave = [NSData dataWithBytesNoCopy:data length:CFDataGetLength(pixelData) freeWhenDone:NO];

ALAssetsLibrary *assetLib = [[ALAssetsLibrary alloc] init];
[assetLib writeImageDataToSavedPhotosAlbum:dataTOSave metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
    NSLog(@"error %@", error);
}];

错误记录完成程序段打印null,但我的iPhone照片库中没有任何内容。 但现在,如果我使用writeImageToSavedPhotosAlbum:metadata:completionBlock:,它的效果很好:

ALAssetsLibrary *assetLib = [[ALAssetsLibrary alloc] init];
[assetLib writeImageToSavedPhotosAlbum:[self.imageView.image CGImage] metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
    NSLog(@"error %@", error);
}];

错误日志仍然打印null,图片会显示在照片库中。

请注意,我使用小型jpg图像(250 * 333)进行了此测试。

有人知道为什么第一个样本无效吗?为什么完成块中没有显示错误?

0 个答案:

没有答案