通过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]);
|
通过AssetsLibrary框架访问所有相片的更多相关文章
- iOS的AssetsLibrary框架访问所有相片
该框架下有几个类,ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRepresentation. ALAssetsLibrary ...
- springMVC框架访问web-inf下的jsp文件
博客原文章:http://td.xue163.com/1042/1/10425265.html 用户提出问题:springMVC框架访问web-inf下的jsp文件,具体如下: 使用springMVC ...
- 关于springMVC框架访问web-inf下的jsp文件
问题:springMVC框架访问web-inf下的jsp文件,具体如下: 使用springMVC,一般都会使用springMVC的视图解析器,大概会这样配置 <property name=&qu ...
- iOS相册实现与AssetsLibrary框架使用
概述 在iOS中如果想要获取手机相册里面的图片或者视频的话就要用到系统自带的AssetsLibrary框架,AssetsLibrary.framework中包含以下文件 #import <Ass ...
- AssetsLibrary 实现访问相册,选取多张照片显示
#import "ViewController.h" #import <AssetsLibrary/AssetsLibrary.h> /** * ALAssetsLib ...
- 用鸿蒙开发AI应用(八)JS框架访问内核层
目录:前言JS应用开发框架原理内置模块实现ace模块开发界面程序 前言上回说到,用C++来写UI界面的开发效率不如JS+HTML来的高,但设备开发又免不了要通过内核态来操作硬件,这里我们就要先打通从J ...
- dio框架访问云函数参数传递问题(以腾讯云中的云函数为例子)第一部
dd云函数其实比较普及,这里以腾讯云的云函数为例,传递参数完成简单的账号注册. 一.第一步先注册腾讯云账号,这里不过多阐述,接着点击 控制台 进入开发者界面.(注意提前进行实名认证) 二.开发者界面如 ...
- Spring框架访问数据库的两种方式的小案例
1.1 以Xml的方式访问数据库的案例 要以xml的方式访问数据库需要用到JdbcTemplate ,因为 JdbcTemplate(jdbc的模板对象)在Spring 中提供了一个可以操作数据库的对 ...
- 关于CI框架访问数据库类提示Call to undefined function mysqli_init()
大家好,我曾经是ASP.NET MVC的践行者,现在是PHP,同时也是CodeIgniter框架的初学者和践行者,当时由于项目原因,我被迫给自己打满鸡血,满怀激情的选用Yii2,Lavarel5,Co ...
随机推荐
- 向html中添加节点
简单: ①,js中: (function () { var box=document.querySelector("#box"); var con1=document.create ...
- python 练习 17
#!/usr/bin/python # -*- coding: UTF-8 -*- f1 = 1 f2 = 1 for i in range(1,21): print '%12d %12d' % (f ...
- 安装SQL Server 2014
一:下载SQL SERVER 2014 https://www.microsoft.com/zh-cn/server-cloud/products/sql-server-editions/sql-se ...
- 5. Longest Palindromic Substring -- 最长回文字串
Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...
- 镜像渐变-radio-gradient
2013年11月15日13:08:37 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"&g ...
- 25款漂亮的 WordPress 杂志主题
WordPress是一个免费和开源博客工具和一个内容管理系统(CMS)基于 PHP 和 MySQL,它运行在一个 Web 托管服务.每个月的 WordPress 主题是由开发人员,其中用户喜欢使用 W ...
- Gramar
一.And 并列关系(and) in addition / and / similarly / likewise / as well as / besides / furthermore / also ...
- 嵌套 click 第二层 click会叠加 导致 触发 多次
$("#appearHiddenDiv").click(function(){ $("#hiddenDiv").css({display:"block ...
- 四个使用this的典型应用
(1)在html元素事件属性中使用,如 <input type=”button” onclick=”showInfo(this);” value=”点击一下”/> (2)构造函数 func ...
- FLASH AS 不显示中文
我修改一个as游戏,发现公告显示不了,整整折腾了2天. flash TextField 汉字不显示,英文会显示,如果是汉字夹杂数字,只把数字显示了,汉字被忽略了. 有人说嵌入字体,网上一搜索,好麻 ...