永发信息网

ios获取相册所有照片需要导入哪个框架

答案:1  悬赏:0  手机版
解决时间 2021-11-09 15:33
ios获取相册所有照片需要导入哪个框架
最佳答案
AssetsLibrary框架
该框架下有几个类,ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRepresentation。

ALAssetsLibrary类
ALAssetsLibrary类可以实现查看相册列表,增加相册,保存图片到相册等功能。
例如enumerateGroupsWithTypes方法列举所有相册。
ALAssetsGroup
ALAssetsGroup就是相册的类,可以通过valueForProperty方法查看不同属性的值,如:ALAssetsGroupPropertyName,相册名。
ALAssetsGroup类有几个方法,posterImage方法就是相册的封面图片,numberOfAssets方法获取该相册的图片视频数量,可以通过enumerateAssetsUsingBlock方法列举出所有照片。
ALAssetsGroup 可以使用setAssetsFilter:(ALAssetsFilter *)filter过滤照片或者视频等。

首先是获取所有相册,通过ALAssetsLibrary的实例方法得到ALAssetsGroup类数组。
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

ALAssetsLibrary *assetsLibrary;
NSMutableArray *groupArray;
assetsLibrary = [[ALAssetsLibrary alloc] init];
groupArray=[[NSMutableArray alloc] initWithCapacity:1];
[assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if (group) {
[groupArray addObject:group];

// 通过这个可以知道相册的名字,从而也可以知道安装的部分应用
//例如 Name:柚子相机, Type:Album, Assets count:1
NSLog(@"%@",group);
}
} failureBlock:^(NSError *error) {
NSLog(@"Group not found!\n");
}];

ALAsset类
ALAsset类也可以通过valueForProperty方法查看不同属性的值,如:ALAssetPropertyType,asset的类型,有三种ALAssetTypePhoto, ALAssetTypeVideo or ALAssetTypeUnknown。
另外还可以通过该方法获取ALAssetPropertyLocation(照片位置),ALAssetPropertyDuration(视频时间),ALAssetPropertyDate(照片拍摄日期)等。
可以通过thumbnail方法就是获取该照片。

根据相册获取该相册下所有图片,通过ALAssetsGroup的实例方法得到ALAsset类数组。

?

1
2
3
4
5
6
7
8

[_group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
if (result) {
[imageArray addObject:result];
NSLog(@"%@",result);
iv.image=[UIImage imageWithCGImage: result.thumbnail];
NSString *type=[result valueForProperty:ALAssetPropertyType];
}
}];

ALAssetRepresentation类

ALAsset类有一个defaultRepresentation方法,返回值是ALAssetRepresentation类,该类的作用就是获取该资源图片的详细资源信息。


?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

//
//获取资源图片的详细资源信息
ALAssetRepresentation* representation = [asset defaultRepresentation];
//获取资源图片的长宽
CGSize dimension = [representation dimensions];
//获取资源图片的高清图
[representation fullResolutionImage];
//获取资源图片的全屏图
[representation fullScreenImage];
//获取资源图片的名字
NSString* filename = [representation filename];
NSLog(@"filename:%@",filename);
//缩放倍数
[representation scale];
//图片资源容量大小
[representation size];
//图片资源原数据
[representation metadata];
//旋转方向
[representation orientation];
//资源图片url地址,该地址和ALAsset通过ALAssetPropertyAssetURL获取的url地址是一样的
NSURL* url = [representation url];
NSLog(@"url:%@",url);
//资源图片uti,唯一标示符
NSLog(@"uti:%@",[representation UTI]);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问平常都没有喝酒就一个月酗酒一两次,一年
求教,指甲里长了条硬硬的
第五套人民币000.111.222.333.444.555.666.77
usb token 3000gm驱动在哪能下载到,我是申报
我的固态硬盘显示未分配,我要怎么做啊
宜,怎么组词
面朝太阳,辨别方向的方法
钉子板是什么样子子
一年级1班有学生47人,小红说,我的学籍号是正
Westem Digital移动硬盘的系统出了问题怎么修
一种植物,每天生长是头一天的2倍,一棵植物10
3-6岁儿童喜欢什么样的表情
苦苦相求意思
2平方分米3平方厘米等于多少平方厘米
北京通来商贸有限公司怎么样?
推荐资讯
以特币哪里有的买?以特币现在行情如何?
和静县行政服务大厅地址有知道的么?有点事想
从2001到20161月个人交社保己15年现已办理退
有没有类似的???
50减多少等于多少乘多少,填相邻数
郭碧婷的胸被谁摸过?
有谁知道这是什么吗?装在浴霸上,是摄像头吗
ARGOX OS系列打印机POWER和READY两指示灯同时
男朋友是聪明人,看事情长远,我们都强势,突
“多证合一”怎么推
如何用okhttp访问本地url
gtx750这个带的动嘛
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?