ViewController.h
#import <UIKit/UIKit.h> #import <AssetsLibrary/AssetsLibrary.h> @interface ViewController : UIViewController<UICollectionViewDataSource, UICollectionViewDelegate> { ALAssetsLibrary *library; NSArray *imageArray; NSMutableArray *mutableArray; IBOutlet UICollectionView *collectionView; } -(void)allPhotosCollected:(NSArray*)imgArray; @endViewController.m
#import "ViewController.h" #import "PhotoCollectionViewCell.h" static int count=0; @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [self getAllPictures]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - read image from ios gallery -(void)getAllPictures { imageArray=[[NSArray alloc] init]; mutableArray =[[NSMutableArray alloc]init]; NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; 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]]; NSURL *url= (NSURL*) [[result defaultRepresentation]url]; [library assetForURL:url resultBlock:^(ALAsset *asset) { [mutableArray addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]]; if ([mutableArray count]==count) { imageArray=[[NSArray alloc] initWithArray:mutableArray]; [self allPhotosCollected:imageArray]; } } failureBlock:^(NSError *error){ NSLog(@"operation was not successfull!"); } ]; } } }; NSMutableArray *assetGroups = [[NSMutableArray alloc] init]; void (^ assetGroupEnumerator) ( ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) { if(group != nil) { [group enumerateAssetsUsingBlock:assetEnumerator]; [assetGroups addObject:group]; count=[group numberOfAssets]; } }; assetGroups = [[NSMutableArray alloc] init]; [library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:assetGroupEnumerator failureBlock:^(NSError *error) {NSLog(@"There is an error");}]; } -(void)allPhotosCollected:(NSArray*)imgArray { //write your code here after getting all the photos from library... NSLog(@"all pictures(%d) are %@",imgArray.count,imgArray); // all UIImage objects are available in imageArray or imgArray // Do with that image data imageArray }
No comments:
Post a Comment