图片保存到系统相册的三种方法

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方法,在回调中可以查看是否保存成功。

你可能感兴趣的:(图片保存到系统相册的三种方法)