iOS 获取本地相册的所有图片

来源:互联网 发布:淘宝服装时尚图片模板 编辑:程序博客网 时间:2024/05/10 01:36

#import <AssetsLibrary/AssetsLibrary.h>



#pragma mark -获取本地所有图片
//urlimage
- (
void)getImage:(NSString*)urlStr
{
   
ALAssetsLibrary *assetLibrary=[[ALAssetsLibraryalloc]init];
   
NSURL *url=[NSURLURLWithString:urlStr];
    [assetLibrary
assetForURL:urlresultBlock:^(ALAsset*asset)  {
       
       
ALAssetRepresentation *rap = [asset defaultRepresentation];
       
CGImageRef ref = [rap fullScreenImage];
       
//大图
       
UIImage *image=[UIImageimageWithCGImage:ref];
       
//缩略图
//        UIImage *image=[UIImage imageWithCGImage:asset.thumbnail];

       
if ([assetvalueForProperty:ALAssetTypePhoto]) {
           
           
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
            dispatch_async(globalQueue, ^{
               //将取得的image保存到数据源 用于后续赋值
                [self.dataSourceaddObject:image];

            });
        }
       
//刷新 
        dispatch_queue_tmainQueue =dispatch_get_main_queue();
       
dispatch_async(mainQueue, ^{
          [
self.collectionViewreloadData];

        });
       
    }
failureBlock:^(NSError*error) {
       
NSLog(@"error=%@",error);
    }];
}

//获取相册的所有图片
- (
void)reloadImagesFromLibrary
{
   
NSMutableArray *images = [[NSMutableArrayalloc]init];
   
dispatch_async(dispatch_get_main_queue(), ^{
       
       
@autoreleasepool {
           
ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError*myerror){
               
NSLog(@"相册访问失败=%@", [myerrorlocalizedDescription]);
               
if ([myerror.localizedDescriptionrangeOfString:@"Global denied access"].location!=NSNotFound) {
                   
NSLog(@"无法访问相册.请在'设置->定位服务'设置为打开状态.");
                }
else{
                   
NSLog(@"相册访问失败.");
                }
            };
           
           
ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset*result,NSUIntegerindex,BOOL *stop){
               
if (result!=NULL) {
                   
                   
if ([[resultvalueForProperty:ALAssetPropertyType]isEqualToString:ALAssetTypePhoto]) {
                       
                       
NSString *urlstr=[NSStringstringWithFormat:@"%@",result.defaultRepresentation.url];//图片的url
                        [imagesaddObject:urlstr];
            //有一张图片自动执行一次
                        [selfgetImage:urlstr];
                      
                    }
                }
            };
           
           
ALAssetsLibraryGroupsEnumerationResultsBlock libraryGroupsEnumeration = ^(ALAssetsGroup* group,BOOL* stop){
               
               
if (group ==nil)
                {
                   
                }
               
               
if (group!=nil) {
                   
NSString *g=[NSStringstringWithFormat:@"%@",group];//获取相簿的组
                   
NSLog(@"gg:%@",g);//gg:ALAssetsGroup - Name:Camera Roll, Type:Saved Photos, Assets count:71
                   
                   
NSString *g1=[g substringFromIndex:16] ;
                   
NSArray *arr=[[NSArrayalloc]init];
                    arr=[g1
componentsSeparatedByString:@","];
                   
NSString *g2=[[arr objectAtIndex:0]substringFromIndex:5];
                   
if ([g2isEqualToString:@"Camera Roll"]) {
                        g2=
@"相机胶卷";
                    }
                   
//                    NSString *groupName=g2;//组的name
                   
                    [group
enumerateAssetsUsingBlock:groupEnumerAtion];
                }
               
            };
           
           
ALAssetsLibrary* library = [[ALAssetsLibraryalloc]init];
            [library
enumerateGroupsWithTypes:ALAssetsGroupAll
                                  
usingBlock:libraryGroupsEnumeration
                                
failureBlock:failureblock];
        }
       
    });
}
0 1
原创粉丝点击