美文网首页
图片保存到系统相册的三种方法

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

作者: 伊路顺峰 | 来源:发表于2018-03-23 07:55 被阅读0次

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

    相关文章

      网友评论

          本文标题:图片保存到系统相册的三种方法

          本文链接:https://www.haomeiwen.com/subject/hsrxettx.html