转载自:http://www.cocoachina.com/bbs/read.php?tid=143383
我的创建相册代码:
-
(void)saveToAlbumWithMetadata:(NSDictionary*)metadata imageData:(NSData*)imageData customAlbumName:(NSString*)customAlbumName completionBlock:(void(^)(void))completionBlock failureBlock:(void(^)(NSError*error))failureBlock{ ALAssetsLibrary
*assetsLibrary = [[ALAssetsLibrary alloc] init]; void(^AddAsset)(ALAssetsLibrary
*, NSURL*)
= ^(ALAssetsLibrary *assetsLibrary, NSURL*assetURL)
{ [assetsLibrary
assetForURL:assetURL resultBlock:^(ALAsset *asset) { [assetsLibrary
enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group,
BOOL*stop)
{ if([[group
valueForProperty:ALAssetsGroupPropertyName] isEqualToString:customAlbumName]) { [group
addAsset:asset]; if(completionBlock)
{ completionBlock(); } } }
failureBlock:^(NSError*error)
{ if(failureBlock)
{ failureBlock(error); } }]; }
failureBlock:^(NSError*error)
{ if(failureBlock)
{ failureBlock(error); } }]; }; [assetsLibrary
writeImageDataToSavedPhotosAlbum:imageData metadata:metadata completionBlock:^(NSURL*assetURL,
NSError*error)
{ if(customAlbumName)
{ [assetsLibrary
addAssetsGroupAlbumWithName:customAlbumName resultBlock:^(ALAssetsGroup *group) { if(group)
{ [assetsLibrary
assetForURL:assetURL resultBlock:^(ALAsset *asset) { [group
addAsset:asset]; if(completionBlock)
{ completionBlock(); } }
failureBlock:^(NSError*error)
{ if(failureBlock)
{ failureBlock(error); } }]; }else{ AddAsset(assetsLibrary,
assetURL); } }
failureBlock:^(NSError*error)
{ AddAsset(assetsLibrary,
assetURL); }]; }else{ if(completionBlock)
{ completionBlock(); } } }]; }-
(void)saveImage:(UIImage*)image{ ALAssetsLibrary
*assetsLibrary = [[ALAssetsLibrary alloc] init]; NSMutableArray*groups=[[NSMutableArrayalloc]init]; ALAssetsLibraryGroupsEnumerationResultsBlock
listGroupBlock = ^(ALAssetsGroup *group, BOOL*stop) { if(group) { [groups
addObject:group]; } else { BOOLhaveHDRGroup
= NO; for(ALAssetsGroup
*gp in groups) { NSString*name
=[gp valueForProperty:ALAssetsGroupPropertyName]; if([name
isEqualToString:@"Flickr墙纸"]) { haveHDRGroup
= YES; } } if(!haveHDRGroup) { //do
add a group named "HDR" [assetsLibrary
addAssetsGroupAlbumWithName:@"Flickr墙纸" resultBlock:^(ALAssetsGroup
*group) { [groups
addObject:group]; } failureBlock:nil]; haveHDRGroup
= YES; } } }; //创建相簿 [assetsLibrary
enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:listGroupBlock failureBlock:nil];
//在我的"扫一扫"代码中,生成的二维码图片存到新创建的相薄后显示全黑,后同事指点原来是下边红色方法的问题,后换了个方法实现了:
UIImageJPEGRepresentation(image,1)
[selfsaveToAlbumWithMetadata:nilimageData:UIImagePNGRepresentation(image)
customAlbumName:@"Flickr墙纸"completionBlock:^ { UIAlertView
*alert=[[UIAlertView alloc]initWithTitle:@"保存成功"message:@"若想马上启用该墙纸,请进入图库找到该墙纸并设置为墙纸即可,感谢您的使用。"delegate:nilcancelButtonTitle:@"好"otherButtonTitles:
nil]; [alert
show]; }
failureBlock:^(NSError*error) { UIAlertView
*alert=[[UIAlertView alloc]initWithTitle:@"保存失败"message:error.description
delegate:nilcancelButtonTitle:@"知道了"otherButtonTitles:
nil]; [alert
show];
//chenyong
下面这个方法可判断是否是因为用户拒绝访问地址所致 我测试了下,如果是中文环境返回 的是“用户拒绝访问”if
(([myerror.localizedDescription rangeOfString:@"User
denied access"].location!=NSNotFound )|| ([myerror.localizedDescription
rangeOfString:@"用户拒绝访问"].location!=NSNotFound))
}]; }
本文介绍了一种在iOS设备上创建自定义相册并将图片保存到该相册的方法。通过使用ALAssetsLibrary,可以实现图片的保存,并且能够指定图片所属的相册名称。此外,还提供了一个解决方案来解决保存二维码图片时显示全黑的问题。
1335

被折叠的 条评论
为什么被折叠?



