Friday, 3 June 2016

Custom Photo Album & Save Image

Custom Photo Album & Save Image


1) Import Photos Framework :


- Photos.framework


import in ViewController :-



#import <Photos/Photos.h>


-(void)DownloadAction
{
          NSMutableArray *data = [[NSMutableArray alloc] init] ;

    NSString *PHOTO_ALBUM_NAME = strForSelectedOrgName ;
    
    PHFetchOptions *userAlbumsOptions = [PHFetchOptions new];
    userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:@"estimatedAssetCount >= 0"];
    
    PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:userAlbumsOptions];
    
    [userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {
        NSLog(@"album title %@", collection.localizedTitle);

        [data addObject:collection.localizedTitle];
        
    }];

    Class PHPhotoLibrary_class = NSClassFromString(@"PHPhotoLibrary");
    if (![data containsObject:strForSelectedOrgName])
    {
        if (PHPhotoLibrary_class)
        {
            [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
                [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:PHOTO_ALBUM_NAME];
            } completionHandler:^(BOOL success, NSError *error) {
                if (!success) {
                    NSLog(@"Error creating album: %@", error);
                }else{
                    NSLog(@"Created");
                }
            }];
        }
    }
    
    PHAssetCollection *assetCollection = [self albumWithTitle:PHOTO_ALBUM_NAME];
    
    for (int i = 0; i < arrForLargeStickers.count ; i ++)
    {
        [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
            
            NSData * imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[arrForLargeStickers objectAtIndex:i]]];
            
            UIImage *image = [UIImage imageWithData:imageData];
            
            PHAssetChangeRequest *createAssetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
            
            PHAssetCollectionChangeRequest *albumChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:assetCollection];
            
            PHObjectPlaceholder * placeHolder = [createAssetRequest placeholderForCreatedAsset];
            
            [albumChangeRequest addAssets:@[ placeHolder ]];
            NSLog(@"%@",placeHolder.localIdentifier);
            if (placeHolder) {
            }
        } completionHandler:^(BOOL success, NSError *error) {
            
            NSLog(@"Finished adding asset. %@  %@",assetCollection, (success ? @"Success" : error));
            if (error) {
            }
        }];

    }
}







//---------------------------------- For Delete Photo Albums


           PHFetchOptions *userAlbumsOptions = [PHFetchOptions new];
    userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:@"estimatedAssetCount >= 0"];
    
    PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:userAlbumsOptions];


   [userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {
        NSLog(@"album title %@", collection.localizedTitle);

        [[PHPhotoLibrary sharedPhotoLibraryperformChanges:^{
            [PHAssetCollectionChangeRequest deleteAssetCollections:userAlbums];
        } completionHandler:^(BOOL success, NSError *error) {
            if (!success) {
                NSLog(@"Error creating album: %@", error);
            }else{
                NSLog(@"Created");
            }
        }];

    }];
        
     

//---------------------------------- For Delete Photo Albums By Album Name



  PHFetchOptions *userAlbumsOptions = [PHFetchOptions new];
  
    userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"title == '%@'", strForSelectedOrgName]];
   
    PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:userAlbumsOptions];

    [userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {
        NSLog(@"album title %@", collection.localizedTitle);
        
            [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
                [PHAssetCollectionChangeRequest deleteAssetCollections:userAlbums];
            } completionHandler:^(BOOL success, NSError *error) {
                if (!success) {
                    NSLog(@"Error creating album: %@", error);
                }else{
                    NSLog(@"Created");
                }
            }];
             

    }];

No comments:

Post a Comment