IOS开发 获取手机里的全部图片

来源:互联网 发布:python google翻译api 编辑:程序博客网 时间:2024/04/29 00:10
 // 需要加入头文件 

#import <AssetsLibrary/AssetsLibrary.h>

//然后创建

@property  (nonatomic,strongALAssetsLibrary *assetsLibrary;

//存放图片

@property  (nonatomic,strongNSMutableArray *imageGroup;

//使用懒加载创建

- (ALAssetsLibrary *)assetsLibrary

{

    if (!_assetsLibrary) {

        _assetsLibrary = [[ALAssetsLibraryalloc]init];

    }

    return_assetsLibrary;

}


- (NSMutableArray *)imageGroup

{

    if (!_imageGroup) {

        _imageGroup = [[NSMutableArrayalloc]init];

    }

    return_imageGroup;

}


//然后在需要的地方调用下面的方法

#pragma mark - 获取图片连接

-(void)createImage{

    

    ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group,BOOL *stop) {

        ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilterallPhotos];

        [group setAssetsFilter:onlyPhotosFilter];

        if ([group numberOfAssets] > 0)

        {

            //group 是图片的组 每组里面有数量不等的图片 第一次接触的话可以打印一些group 看看格式

            [group enumerateAssetsUsingBlock:^(ALAsset *result,NSUInteger index,BOOL *stop) {

                //遍历group得到 result可以转化成图片

                

                /* postImage是将要显示的图片

                 ALAsset *result = [self.imageGroup objectAtIndex:indexPath.row];

                 UIImage *postImage = [UIImage imageWithCGImage:[group aspectRatioThumbnail]];

                 */

                if (result) {

                    //result转化成图片直接保存到可变数组里面 如果直接把result存到数组里面 在用的时候直接获取图片 图片会模糊 图片分为 高清图 全屏图 这里取的是高清图

                   UIImage *postImage = [UIImageimageWithCGImage:result.defaultRepresentation.fullResolutionImage];

                    

                    [self.imageGroupaddObject:postImage];

                }

                

            }];

        }

        else

        {

            [self.collectionViewreloadData];// 执行到了这里之后 就说明 所有的图片全部都放到了 self.imageGroup 这个可变数组里面了 self.collectionView 是我用于展示图片用的 这里 就不放进来了

        }

        

    };

    

    NSUInteger groupTypes = ALAssetsGroupAll ;

    

    [self.assetsLibraryenumerateGroupsWithTypes:groupTypesusingBlock:listGroupBlockfailureBlock:^(NSError *error) {

        NSLog(@"Group not found!\n");

    }];


    

}




0 0
原创粉丝点击