ALAssetsLibrary从自定义相册ios中获取图像

我正在使用ALAssetsLibrary将应用程序中的图片保存到海关相册中。 我能够保存图像,但无法从相册中获取图像

__weak ALAssetsLibrary *lib = self.library; [self.library addAssetsGroupAlbumWithName:@"MyAlbum" resultBlock:^(ALAssetsGroup *group) { ///checks if group previously created if(group == nil){ //enumerate albums [lib enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *g, BOOL *stop) { //if the album is equal to our album if ([[g valueForProperty:ALAssetsGroupPropertyName] isEqualToString:@"My Photo Album"]) { //save image [lib writeImageDataToSavedPhotosAlbum:UIImagePNGRepresentation(image) metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) { //then get the image asseturl [lib assetForURL:assetURL resultBlock:^(ALAsset *asset) { //put it into our album [g addAsset:asset]; } failureBlock:^(NSError *error) { }]; }]; } }failureBlock:^(NSError *error){ }]; }else{ // save image directly to library [lib writeImageDataToSavedPhotosAlbum:UIImagePNGRepresentation(image) metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) { [lib assetForURL:assetURL resultBlock:^(ALAsset *asset) { [group addAsset:asset]; } failureBlock:^(NSError *error) { }]; }]; } } failureBlock:^(NSError *error) { }]; 

如何从MyAlbum中获取图片 我想要一个一个地抓取所有图像。

试试这个代码。

 -(void)getImageVideosFromGallery:(void(^)(void))completion{ ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; [library enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop) { NSString *albumName = [group valueForProperty:ALAssetsGroupPropertyName]; if ([albumName isEqualToString:@"MyAlbum"]) { [group setAssetsFilter:[ALAssetsFilter allAssets]]; [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) { if (alAsset) { if ([[alAsset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) { NSLog(@"Video"); } else{ ALAssetRepresentation *representation = [alAsset defaultRepresentation]; UIImage *imgThumb = [UIImage imageWithCGImage:[alAsset thumbnail]]; UIImage *imgOriginal = [UIImage imageWithCGImage:[[alAsset defaultRepresentation]fullScreenImage]]; } } }]; if (group == nil) { completion(); } } }failureBlock: ^(NSError *error) { NSLog(@"No groups"); }]; } 

你可以试试这个方法..

 -(void)loadlibraryImages { NSMutableArray * _recentpictureArray=[[NSMutableArray alloc]init]; ALAssetsLibrary *_library = [[ALAssetsLibrary alloc] init]; [_library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop){ if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqual:@"MyAlbum"]) { void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { if(result != nil) { [_recentpictureArray addObject:result]; } }; [group setAssetsFilter:[ALAssetsFilter allPhotos]]; [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:assetEnumerator]; } [self.collectionview reloadData]; // you can reload your collection view } failureBlock:^(NSError *error){ NSLog(@"failure"); }]; NSLog(@"Count : %lu",(unsigned long)[_recentpictureArray count]); } 

然后,从这样的Array获得拇指图像。

  ALAsset *asset = [_recentpictureArray objectAtIndex:indexPath.row]; CGImageRef thumbnailImageRef = [asset aspectRatioThumbnail]; UIImage *thumbnail = [UIImage imageWithCGImage:thumbnailImageRef]; // Then set your image view's image. 

而已。 这项工作在ios9 ..希望这是有帮助的..谢谢