Translate

2013年5月3日 星期五

ios-ALAssetsLibrary获取系统相簿里边的所有照片

參考link

-(void)getImgs{ dispatch_async(dispatch_get_main_queue(), ^{ NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc] init]; ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror){ NSLog(@"相册访问失败 =%@", [myerrorlocalizedDescription]); if ([myerror.localizedDescription rangeOfString:@"Global denied access"].location!=NSNotFound) { NSLog(@"无法访问相册.请在'设置->定位服务'设置为打开状态."); }else{ NSLog(@"相册访问失败."); } }; ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset *result,NSUInteger index, BOOL *stop){ if (result!=NULL) { if ([[result valueForProperty:ALAssetPropertyType]isEqualToString:ALAssetTypePhoto]) { NSString *urlstr=[NSString stringWithFormat:@"%@",result.defaultRepresentation.url];//图片的url /*result.defaultRepresentation.fullScreenImage//图片的大图 result.thumbnail //图片的缩略图小图 // NSRange range1=[urlstr rangeOfString:@"id="]; // NSString *resultName=[urlstr substringFromIndex:range1.location+3]; // resultName=[resultName stringByReplacingOccurrencesOfString:@"&ext=" withString:@"."];//格式demo:123456.png */ [self._dataArray addObject:urlstr]; } } }; ALAssetsLibraryGroupsEnumerationResultsBlock libraryGroupsEnumeration = ^(ALAssetsGroup* group,BOOL* stop){ if (group == nil) { } if (group!=nil) { NSString *g=[NSString stringWithFormat:@"%@",group];//获取相簿的组 NSLog(@"gg:%@",g);//gg:ALAssetsGroup - Name:Camera Roll, Type:Saved Photos, Assets count:71 NSString *g1=[g substringFromIndex:16 ] ; NSArray *arr=[NSArray arrayWithArray:[g1componentsSeparatedByString:@","]]; NSString *g2=[[arr objectAtIndex:0]substringFromIndex:5]; if ([g2 isEqualToString:@"Camera Roll"]) { g2=@"相机胶卷"; } NSString *groupName=g2;//组的name [groupenumerateAssetsUsingBlock:groupEnumerAtion]; } }; ALAssetsLibrary* library = [[ALAssetsLibraryalloc] init]; [libraryenumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:libraryGroupsEnumeration failureBlock:failureblock]; [library release]; [pool release]; }); } //------------------------根据图片的url反取图片----- ALAssetsLibrary *assetLibrary=[[ALAssetsLibraryalloc] init]; NSURL *url=[NSURLURLWithString:urlStr]; [assetLibrary assetForURL:url resultBlock:^(ALAsset *asset) { UIImage *image=[UIImage imageWithCGImage:asset.thumbnail]; cellImageView.image=image; }failureBlock:^(NSError *error) { NSLog(@"error=%@",error); } ];

沒有留言:

張貼留言