摘要
由于博客迁移至www.coderyi.com,文章请看http://www.coderyi.com/archives/424
该框架下有几个类,ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRepresentation。
ALAssetsLibrary类
ALAssetsLibrary类可以实现查看相册列表,增加相册,保存图片到相册等功能。
例如enumerateGroupsWithTypes方法列举所有相册。
ALAssetsGroup
ALAssetsGroup就是相册的类,可以通过valueForProperty方法查看不同属性的值,如:ALAssetsGroupPropertyName,相册名。
ALAssetsGroup类有几个方法,posterImage方法就是相册的封面图片,numberOfAssets方法获取该相册的图片视频数量,可以通过enumerateAssetsUsingBlock方法列举出所有照片。
ALAssetsGroup 可以使用setAssetsFilter:(ALAssetsFilter *)filter过滤照片或者视频等。
首先是获取所有相册,通过ALAssetsLibrary的实例方法得到ALAssetsGroup类数组。
1 ALAssetsLibrary *assetsLibrary; 2 NSMutableArray *groupArray; 3 assetsLibrary = [[ALAssetsLibrary alloc] init]; 4 groupArray=[[NSMutableArray alloc] initWithCapacity:1]; 5 [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { 6 if (group) { 7 [groupArray addObject:group]; 8 9 // 通过这个可以知道相册的名字,从而也可以知道安装的部分应用 10 //例如 Name:柚子相机, Type:Album, Assets count:1 11 NSLog(@"%@",group); 12 } 13 } failureBlock:^(NSError *error) { 14 NSLog(@"Group not found!\n"); 15 }];
ALAsset类
ALAsset类也可以通过valueForProperty方法查看不同属性的值,如:ALAssetPropertyType,asset的类型,有三种ALAssetTypePhoto, ALAssetTypeVideo or ALAssetTypeUnknown。
另外还可以通过该方法获取ALAssetPropertyLocation(照片位置),ALAssetPropertyDuration(视频时间),ALAssetPropertyDate(照片拍摄日期)等。
可以通过thumbnail方法就是获取该照片。
根据相册获取该相册下所有图片,通过ALAssetsGroup的实例方法得到ALAsset类数组。
1 [_group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { 2 if (result) { 3 [imageArray addObject:result]; 4 NSLog(@"%@",result); 5 iv.image=[UIImage imageWithCGImage: result.thumbnail]; 6 NSString *type=[result valueForProperty:ALAssetPropertyType]; 7 } 8 }];
ALAssetRepresentation类
ALAsset类有一个defaultRepresentation方法,返回值是ALAssetRepresentation类,该类的作用就是获取该资源图片的详细资源信息。
如
1 // 2 //获取资源图片的详细资源信息 3 ALAssetRepresentation* representation = [asset defaultRepresentation]; 4 //获取资源图片的长宽 5 CGSize dimension = [representation dimensions]; 6 //获取资源图片的高清图 7 [representation fullResolutionImage]; 8 //获取资源图片的全屏图 9 [representation fullScreenImage]; 10 //获取资源图片的名字 11 NSString* filename = [representation filename]; 12 NSLog(@"filename:%@",filename); 13 //缩放倍数 14 [representation scale]; 15 //图片资源容量大小 16 [representation size]; 17 //图片资源原数据 18 [representation metadata]; 19 //旋转方向 20 [representation orientation]; 21 //资源图片url地址,该地址和ALAsset通过ALAssetPropertyAssetURL获取的url地址是一样的 22 NSURL* url = [representation url]; 23 NSLog(@"url:%@",url); 24 //资源图片uti,唯一标示符 25 NSLog(@"uti:%@",[representation UTI]);
浙公网安备 33010602011771号