问题:
我使用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)进行了此测试。
有人知道为什么第一个样本无效吗?为什么完成块中没有显示错误?