获取IPhone相册中图片的方法(包括获取所有图片)
来源:互联网 发布:朴素贝叶斯算法 matlab 编辑:程序博客网 时间:2024/05/17 07:23
原文:http://blog.csdn.net/iukey/article/details/8015114
iOS中如果我们只有一次读取一张图片或者一个视频(或拍一张照片/视频)的需求,那么我们用 UIImagePickerController 就可以搞定。但是很多时候我们需要一次性从PhotoLibrary读取多个照片或者视频,这时候我们就需要另辟蹊径了,好在apple为我们提供了相应的接口。
在开始coding之前我们想要认识几个类:
ALAssetsLibrary:代表整个PhotoLibrary,我们可以生成一个它的实例对象,这个实例对象就相当于是照片库的句柄。
ALAssetsGroup:照片库的分组,我们可以通过ALAssetsLibrary的实例获取所有的分组的句柄。
ALAsset:一个ALAsset的实例代表一个资产,也就是一个photo或者video,我们可以通过他的实例获取对应的subnail或者原图等等。
还需要了解的一个东东就是blocks,apple在iOS 4.0以后大量出现了这玩意儿,有使用越来越广的意思,不过这玩意儿确实好用。关于这玩意儿的内容我在这里不多讲,关注我的博客我会细讲。
对于本文的需求,我们读取group和每个asset都是异步的,但是我们现在用blocks我们可以在一个函数里面搞定。所以blocks确实很方便。
下面直接看代码吧:
- ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc]init];//生成整个photolibrary句柄的实例
- NSMutableArray *mediaArray = [[NSMutableArray alloc]init];//存放media的数组
- [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {//获取所有group
- [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {//从group里面
- NSString* assetType = [result valueForProperty:ALAssetPropertyType];
- if ([assetType isEqualToString:ALAssetTypePhoto]) {
- NSLog(@"Photo");
- }else if([assetType isEqualToString:ALAssetTypeVideo]){
- NSLog(@"Video");
- }else if([assetType isEqualToString:ALAssetTypeUnknown]){
- NSLog(@"Unknow AssetType");
- }
- NSDictionary *assetUrls = [result valueForProperty:ALAssetPropertyURLs];
- NSUInteger assetCounter = 0;
- for (NSString *assetURLKey in assetUrls) {
- NSLog(@"Asset URL %lu = %@",(unsigned long)assetCounter,[assetUrls objectForKey:assetURLKey]);
- }
- NSLog(@"Representation Size = %lld",[[result defaultRepresentation]size]);
- }];
- } failureBlock:^(NSError *error) {
- NSLog(@"Enumerate the asset groups failed.");
- }];
剩下的就是怎么从每个asset获取相应的thumbnail或者原图或者其他信息了。It's very easy.
0 0
- 获取IPhone相册中图片的方法(包括获取所有图片)
- 获取IPhone相册中图片的方法(包括获取所有图片)
- 获取IPhone相册中图片的方法(包括获取所有图片)
- 获取IPhone相册中图片的方法(包括获取所有图片)
- 获取IPhone相册中图片的方法(包括获取所有图片)
- 获取IPhone相册中图片的方法(包括获取所有图片)
- 获取IPhone相册中图片的方法(包括获取所有图片)
- 获取IPhone相册中图片的方法(包括获取所有图片)
- 获取IPhone相册中照片的方法(包含获取所有图片)
- 获取IPhone相册中图片的方法(ASSets)
- iOS获取相册中所有图片
- iOS 获取本地相册的所有图片
- 使用Photos来获取相册中所有图片
- 从相册中获取图片
- IOS程序访问iPhone手机相册/相机来获取图片的方法
- iOS8下获取相册所有图片
- iOS8下获取相册所有图片
- iOS8下获取相册所有图片
- 【前端学习笔记】深入学习Javascript:EVENT总结
- 2015-多校5-MZL's chemistry
- [LeetCode]Container With Most Water
- 2015年工作中遇到的问题:11-20
- SSH 案例学习总结(一)
- 获取IPhone相册中图片的方法(包括获取所有图片)
- mybatis 输入映射和输出映射
- 在Android2.3.3即minSdkVersion 10上使用android.support.v4.widget.SwipeRefreshLayout和android.support.design
- [leetcode 139]Word Break
- SAP 供应商寄售业务的标准流程
- Java相等性测试
- POJ 3620 Avoid The Lakes 深搜DFS 附翻译 WA原因
- StartIO例程
- Berkeley's SICP in python3(五)