IOS-AssetsLibrary(相册)框架介绍
AssetsLibrary框架介绍:
AssetsLibrary框架包含了ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRepresentation 五个类,提供从相册中读取相片、将相片保存到相册,获取相册信息,增加相册等功能。
注意:在一个类中多处使用到ALAssetsLibrary框架,最好定义ALAssetsLibrary类属性,因为,如果ALAssetsLibrary类的实例释放掉了,这个ALAssetsLibrary类对应的ALAssetsGroup也会不存在.
ALAssetsLibrary
ALAssetsLibrary类介绍
可以说,是一个桥梁把。连接了我们应用程序和相册之间的访问。
ALAssetsLibrary提供了我们对iOS设备中的相片、视频的访问。
ALAssetsLibrary被封装在 框架中。所以,我们在使用时,需要引入该框架。
需添加AssetsLibrary.framework
然后引入头文件
#import<AssetsLibrary/AssetsLibrary.h>
或者
{
#import <AssetsLibrary/ALAsset.h>
#import <AssetsLibrary/ALAssetsLibrary.h>
#import <AssetsLibrary/ALAssetsGroup.h>
#import <AssetsLibrary/ALAssetRepresentation.h>
}
ALAssetsLibrary类方法介绍
//添加一个group,成功后查看一些信息
addAssetsGroupAlbumWithName:(NSString *) resultBlock: failureBlock:
//通过url地址在相册资源中获取该地址的资源文件ALAsset,有可能是相片或视频
assetForURL: resultBlock: failureBlock:
//通过url地址获取相册资源中的一个相册
photolibrary groupForURL: resultBlock: failureBlock:
//根据选择的类型遍历相册资源中的相对应类型的所有相册,其中stop行参是指针,表示是否停止迭代,当赋值为false则停止
enumerateGroupsWithTypes: usingBlock: failureBlock:
//保存图片到系统默认的相册中,使用nsdata的形式,并返回照片的url地址
[_library writeImageDataToSavedPhotosAlbum:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
}];
//保存图片到系统默认的相册中,使用cgimageref的形式,并返回照片的url地址
[_library writeImageToSavedPhotosAlbum:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
}];
//保存图片到系统默认的相册中,使用cgimageref的形式,并且选择图片以什么旋转方向的形式保存,并返回照片的url地址
// typedef enum {
// ALAssetOrientationUp, // default orientation
// ALAssetOrientationDown, // 180 deg rotation
// ALAssetOrientationLeft, // 90 deg CCW
// ALAssetOrientationRight, // 90 deg CW
// ALAssetOrientationUpMirrored, // as above but image mirrored along other axis. horizontal flip
// ALAssetOrientationDownMirrored, // horizontal flip
// ALAssetOrientationLeftMirrored, // vertical flip
// ALAssetOrientationRightMirrored, // vertical flip
// } ALAssetOrientation;
UIImage* image = [UIImage imageNamed:@"test.png"];
[_library writeImageToSavedPhotosAlbum:[image CGImage] orientation:ALAssetOrientationLeft completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"save image:%@",assetURL);
}];
ALAssetsgroup
ALAssetsgroup 类介绍
ALAssetsgroup 就是相册的类
ALAssetsgroup 方法介绍
Enumerating Assets(遍历资源)
– enumerateAssetsUsingBlock:(用一个block来遍历组里的资源)
– enumerateAssetsWithOptions:usingBlock:(在枚举选项的条件下,用一个block来遍历组里的资源)
– enumerateAssetsAtIndexes:options:usingBlock:(在枚举选项的条件下,用一个block来遍历组里特定index的资源)
Adding Assets(添加资源)
– addAsset:(添加一个已存在的asset到接收者。返回yes成功;反之,失败。)
editable property(指示程序是否可以编辑组,只读属性,打印看了一下,系统自带的是不能编辑的,其它可以编辑)
Filtering(过滤)
– numberOfAssets(返回组过滤器条件下的资源个数,若没有设置过滤器,则返回组里的资源个数)
– setAssetsFilter:(设置组的过滤器)
Accessing Properties(访问属性)
– valueForProperty:(通过组属性名称,获取组属性:组名称,组类型,组永久性ID,组URL)
– posterImage(组的封面)
ALAsset
ALAsset 类介绍
ALAsset可以看成是一个你选择的文件的包装类,从中可以取到一个叫做ALAssetPresentation的对象(defaultRepresentation),然后如果是图片的话里面可以得到全屏图、全尺寸图、metadata、size等等有用的信息。
ALAsset类中方法介绍
Asset Properties
– valueForProperty:
(1.ALAssetPropertyType 资源的类型(照片,视频)
2.ALAssetPropertyLocation 资源地理位置(无位置信息返回null)
3.ALAssetPropertyDuation 播放时长(照片返回ALErorInvalidProperty)
4.ALAssetPropertyOrientation 方向(共有8个方向,参见:ALAssetOrientation)
5.ALAssetPropertyDate 拍摄时间(包含了年与日时分秒)
6.ALAssetPropertyRepresentations 描述(打印看了下,只有带后缀的名称)
7.ALAssetPropertyURLs(返回一个字典,键值分别是文件名和文件的url)
8.ALAssetPropertyAssetURL 文件的url )
editable property(指示资源是否可以编辑,只读属性)
originalAsset property(原始资源。若没有保存修改后资源,则原始资源为nil)
Accessing Representations
– defaultRepresentation
– representationForUTI:
– thumbnail(小正方形的缩略图)
– aspectRatioThumbnail(按原始资源长宽比例的缩略图)
Setting New Image and Video Data
– setImageData:metadata:completionBlock:
用给定的image data 替换接收者的image data。
– setVideoAtPath:completionBlock:
用给定的URL的video 替换接收者的video data。
Saving to the Saved Photos Album
– writeModifiedImageDataToSavedPhotosAlbum:metadata:completionBlock:
保存image data到Saved Photos album
– writeModifiedVideoAtPathToSavedPhotosAlbum:completionBlock:
保存video到Saved Photos album的指定路径
ALAssetRepresentation
ALAssetRepresentation类介绍
ALAssetRepresentation对象封装了一个给定ALAsset对象的陈述。一个在资源库中给定的asset可能有不止一个陈述。比如,如果一个相机提供RAW和JPEG格式的图像版本,asset将有两个陈述版本,一个是RAW的,一个是JPEG的。
ALAssetRepresentation方法介绍
Getting Image Representations
– CGImageWithOptions:
– fullResolutionImage(完全分辨率的图片)
– fullScreenImage(满屏的图片)
Getting Image Attributes
– orientation(文件方向)
– scale(长宽比例)
– filename(文件名字)
Getting Raw Data
– size(文件尺寸,以byte为单位)
– getBytes:fromOffset:length:error:
Getting Metadata
– UTI
– metadata
Getting an URL
– url
使用
ALAssetsLibrary *photolibrary = [[ALAssetsLibrary alloc] init];
[photolibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
//提取group中的数据信息
if (group) {
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
if (result) {
//获取缩略图
UIImage *image = [UIImage imageWithCGImage:[result thumbnail]];
[self.thumbnailArray addObject:[image copy]];
//获取原图
image = [UIImage imageWithCGImage:[[result defaultRepresentation] fullScreenImage]];
[self.orignalArray addObject:[image copy]];
}
}];
}
} failureBlock:^(NSError *error) {
NSLog(@"获取图片失败");
}];
转载地址:
IOS-AssetsLibrary(相册)框架介绍的更多相关文章
- iOS的主要框架介绍
框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件.一个共享库定义的方法或函数可以被应用程序调用. IOS提供了很多你可以在应用程序里调用的框架.要使用一个框 ...
- iOS框架介绍
iOS框架介绍 Cocoa Touch GameKit 实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息 iOS设备之间蓝牙数据传输 从iOS7开始过期 局域网游 ...
- iOS 常用框架介绍
iOS框架介绍 Cocoa Touch GameKit 实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息 iOS设备之间蓝牙数据传输 从iOS7开始过期 局域网游 ...
- iOS开发-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...
- iOS多媒体框架介绍
媒体层 媒体层包含图形技术.音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易.您可以使用iOS的高级框架更快速地创建高级 ...
- ios中框架介绍
ios中框架介绍 参考博客: 参考文章:框架介绍 框架介绍 框架就是一个目录,一个目录包含了共享库,访问共享库里面的代码的头文件,和其他的图片和声音的资源文件.一个共享库定义的方法和函数可以被应用程序 ...
- 相册框架之AssetsLibrary
看到项目中用到AssetsLibrary这个框架, 所以研究了一下 其实很简单 - (void)getAlbumPhoto { NSString *tipTextWhenNoPhotosAuthori ...
- iOS Photos.framework框架
链接: iOS8.0 使用Photos.framework对相册的常用操作 iOS AssetsLibrary和Photos的使用总结: 权限及相册的获取 iOS 开发之照片框架详解 iOS Asse ...
- IOS-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 时间:2015-05-06 16:43:34 阅读:533 评论:0 收藏:0 [点我收藏+] ...
随机推荐
- PM【terminal】
More Knowledge More Performance More Time 资料模组化 以知识管理为基础的项目管理 规范:ethic
- python 简单谈谈“类”
文章出处:http://www.cnblogs.com/winstic/,请保留此连接 面向对象是python语言的一大特色,而类又是面向对象编程的核心 先来一段关于类的声明: class myCla ...
- Spring 初学 1
Spring是一个轻量级的框架,他有自己的MVC框架SpringMVC,在以往的Web项目中大多采用Structs2+hibernate+Spring的框架,Structs做web层,Hibernat ...
- 简单学C——第四天
数组 在学数组之前,有必要把前面的知识复习一遍,当然我的复习,仅仅只是提一下,而对于你,则应该认真的看一下前面的知识点,不懂可以百度,哈哈. 前面我们大致学了 1.定义变量,2.数据的输入与输出,3. ...
- MATLAB r2014a 下载+安装+激活
MATLAB r2014a,下载包就有7个多GB,装完占用9个多GB,慎装.界面还不错,稍有改良. 其实本文是下载+安装+破解啦.读书人的事,怎么能叫破解呢?所以我这里讲的是如何激活啦. MATLAB ...
- ligerUI路径问题
ligerUI放mv的Content目录下,路径为固定的并且必须引进一下文件 <link href="~/Content/Ligerui/Source/lib/ligerUI/skin ...
- jdbc 安装驱动
在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是 打开eclipse 1.右击要导入jar包的项目,点properties 2.左边选择java ...
- bzoj 1853: [Scoi2010]幸运数字 容斥
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 1170 Solved: 406[Submit][Status] ...
- Phonegap 3.0 设置APP是否全屏
Phonegap 3.0 默认是全屏,如需要取消全屏,可手动修改config, 在APP/res/xml/config.xml文件可设置preference: <?xml version='1. ...
- java4中创建内对象的方法
在java程序中,对象可以被显式地或者隐式地创建.四种显式的创建对象的方式: ● 用new语句创建对象 ● 运用反射手段,调用java.lang.Class 或者 java.lang. ...