标签:
//直接调用系统的相册
UIImageWriteToSavedPhotosAlbum(_image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
//直接封装了一个自定义相册的方法
#import "LZPAlbumManager.h"
#import <Photos/Photos.h>
#import <SVProgressHUD/SVProgressHUD.h>
@implementation LZPAlbumManager
//获取指定的相册
//由用户传入想要找的相册的名字
+(PHAssetCollection *)getExistAlumWithAssetName:(NSString *)assetName{
//该方法返回一个包含所有相册的数组(可以看做是一个数组,返回的类型可以遍历)
PHFetchResult * result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
//遍历返回的数组,获得所有的相册名字
for (PHAssetCollection * collection in result) {
if ([collection.localizedTitle isEqualToString:assetName]) {
return collection;
}
}
return nil;
}
//保存指定的图片到指定的相册中
+(void)saveImageWithAlumAssetName:(NSString *)assetName andImageName:(UIImage *)image{
//获取相薄,因为一个系统中只有一个相薄,这里是使用的单例
PHPhotoLibrary * phLi = [PHPhotoLibrary sharedPhotoLibrary];
[phLi performChanges:^{
//自定义相册
PHAssetCollectionChangeRequest * assetCollectionChangeRequest;
//判断自己的app专有的相册是否存在,如果存在,直接保存,如果不存在,创建一个指定名字的相册后再保存图片
if ([self getExistAlumWithAssetName:assetName]) {
//使用原有的相册保存
assetCollectionChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:[self getExistAlumWithAssetName:assetName]];
}else{
//创建一个指定名称的相册
assetCollectionChangeRequest = [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:assetName];
}
//创建图片请求对象
PHAssetChangeRequest * assetChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
//把图片放在自定义相册中
[assetCollectionChangeRequest addAssets:@[assetChangeRequest.placeholderForCreatedAsset ]];
} completionHandler:^(BOOL success, NSError * _Nullable error) {
if (!error) {
[SVProgressHUD showSuccessWithStatus:@"保存成功"];
}else{
[SVProgressHUD showErrorWithStatus:@"保存失败"];
}
}];
}
@end
标签:
原文地址:http://blog.csdn.net/batac_lee/article/details/51334741