Get all images from photo library to iphone

I am trying to extract images from a photo library and display them in my application using AssetsLibrary. I have a url for photos, but I don’t know how to take a picture.

My code is as follows:

NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { if(result != nil) { if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]]; NSLog(@"result is:%@",result); NSLog(@"asset URLDictionary is:%@",assetURLDictionaries); NSURL *url= (NSURL*) [[result defaultRepresentation]url]; [library assetForURL:url resultBlock:^(ALAsset *asset) { [assetsp addObject:asset]; } failureBlock:^(NSError *error){ NSLog(@"test:Fail"); } ]; } } }; NSMutableArray *assetGroups = [[NSMutableArray alloc] init]; void (^ assetGroupEnumerator) ( ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop){ NSLog(@"hi"); if(group != nil) { [group enumerateAssetsUsingBlock:assetEnumerator]; [assetGroups addObject:group]; NSLog(@"Number of assets in group :%d",[group numberOfAssets]); } }; assetGroups = [[NSMutableArray alloc] init]; ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; [library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:assetGroupEnumerator failureBlock:^(NSError *error) {NSLog(@"A problem occurred");}]; 
+4
source share
2 answers

This code is extracted from some ELCImagePickerController example from here . Some changes have been made to simplify.

May it help you

 [self.assetGroup enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { if(result == nil) return; UIImageView *assetImageView = [[UIImageView alloc] initWithFrame:viewFrames]; [assetImageView setContentMode:UIViewContentModeScaleToFill]; [assetImageView setImage:[UIImage imageWithCGImage:[result thumbnail]]]; }]; 

Happy coding :)

NEW RESPONSE

Just use

 [UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]] 

to store the image directly instead of storing the asset while storing the asset in assetsp

properly

 void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { if(result != nil) { if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]]; NSLog(@"result is:%@",result); NSLog(@"asset URLDictionary is:%@",assetURLDictionaries); NSURL *url= (NSURL*) [[result defaultRepresentation]url]; [library assetForURL:url resultBlock:^(ALAsset *asset) { //Your line //[assetsp addObject:asset]; //My Changed line will store image directly to assetsp [assetsp addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]]; } failureBlock:^(NSError *error){ NSLog(@"test:Fail"); } ]; } } }; 

NEW ANSWER 1

Try this code to store ALAsset data in a mutable array

 NSMutableArray *returnArray = [[NSMutableArray alloc] init]; for(ALAsset *asset in _assets) { NSMutableDictionary *workingDictionary = [[NSMutableDictionary alloc] init]; [workingDictionary setObject:[asset valueForProperty:ALAssetPropertyType] forKey:@"UIImagePickerControllerMediaType"]; [workingDictionary setObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]] forKey:@"UIImagePickerControllerOriginalImage"]; [workingDictionary setObject:[[asset valueForProperty:ALAssetPropertyURLs] valueForKey:[[[asset valueForProperty:ALAssetPropertyURLs] allKeys] objectAtIndex:0]] forKey:@"UIImagePickerControllerReferenceURL"]; [returnArray addObject:workingDictionary]; 

and get the image in a UIImageView, just do it

 NSDictionary *dict = [info objectAtIndex:i]; UIImageView *imageview = [[UIImageView alloc] initWithImage:[dict objectForKey:UIImagePickerControllerOriginalImage]]; [imageview setContentMode:UIViewContentModeScaleAspectFit]; 
+3
source

My code is as follows:

 - (void)viewDidLoad { carousel.type = iCarouselTypeCoverFlow2; [super viewDidLoad]; xy =[[NSMutableArray alloc]init]; NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { if(result != nil) { if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]]; NSLog(@"result is:%@",result); NSLog(@"asset URLDictionary is:%@",assetURLDictionaries); NSURL *url= (NSURL*) [[result defaultRepresentation]url]; [library assetForURL:url resultBlock:^(ALAsset *asset) { [xy addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]]; NSLog(@" xy is:%@",xy); image =[ [UIImageView alloc ] initWithImage:[xy objectAtIndex:0]]; NSLog(@"image is:%@",image); } failureBlock:^(NSError *error){ NSLog(@"test:Fail"); } ]; } } }; NSMutableArray *assetGroups = [[NSMutableArray alloc] init]; void (^ assetGroupEnumerator) ( ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) { NSLog(@"hello"); if(group != nil) { [group enumerateAssetsUsingBlock:assetEnumerator]; [assetGroups addObject:group]; NSLog(@"Number of assets in group :%d",[group numberOfAssets]); NSLog(@"asset group is:%@",assetGroups); } }; assetGroups = [[NSMutableArray alloc] init]; [library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:assetGroupEnumerator failureBlock:^(NSError *error) {NSLog(@"A problem occurred");}]; 
+3
source

All Articles