1、使用UIImageWriteToSavedPhotosAlbum方法
- (void) saveToPhotoLibrary:(UIImage*)image {
UIImageWriteToSavedPhotosAlbum(image,self,@selector(image:didFinishSavingWithError:contextInfo:),NULL);
}
- (void)image:(UIImage*)image didFinishSavingWithError:(NSError*)error contextInfo:(void*) contextInfo {
if(error ==nil) {
NSLog(@"保存成功");
}else{
NSLog(@"保存失败");
}
}
第一个参数是要保存的图片对象,第二个参数是回调对象,第三个参数是回调对象的方法(此方法系统还没有生成协议,按照这个写就行)。
2、使用 ALAssetsLibrary 的方法
__blockALAssetsLibrary*al = [[ALAssetsLibraryalloc]init];
[alwriteImageToSavedPhotosAlbum:image.CGImagemetadata:nilcompletionBlock:^(NSURL*assetURL,NSError*error) {
if(!error) {
al =nil;
NSLog(@"保存成功");
}
}];
第一个参数是CGImage 对象,第二个参数是图片的参数,目前传nil,这个方法在iOS4.0开始使用,但是在iOS9被弃用,现在苹果建议使用后面将要降到的第三个方法。
3、使用Photos 框架下面的PHPhotosLibrary 方法
- (void) saveToPhotoLibrary:(UIImage*)image {
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetChangeRequest*requ = [PHAssetChangeRequestcreationRequestForAssetFromImage:image];
}completionHandler:^(BOOLsuccess,NSError*_Nullableerror) {
if(success) {
NSLog(@"成功");
}
}];
}
这个方法调用PHPhotoLibrary 的单例方法的performChange:completionHandler方法,在回调中可以查看是否保存成功。
网友评论