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(@"获取图片失败");
}];



转载地址:

http://www.mobile-open.com/2014/2867.html

http://blog.csdn.net/u011439689/article/details/38454987

IOS-AssetsLibrary(相册)框架介绍的更多相关文章

  1. iOS的主要框架介绍

    框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件.一个共享库定义的方法或函数可以被应用程序调用. IOS提供了很多你可以在应用程序里调用的框架.要使用一个框 ...

  2. iOS框架介绍

    iOS框架介绍      Cocoa Touch   GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息  iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游 ...

  3. iOS 常用框架介绍

    iOS框架介绍      Cocoa Touch   GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息  iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游 ...

  4. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  5. iOS多媒体框架介绍

    媒体层 媒体层包含图形技术.音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易.您可以使用iOS的高级框架更快速地创建高级 ...

  6. ios中框架介绍

    ios中框架介绍 参考博客: 参考文章:框架介绍 框架介绍 框架就是一个目录,一个目录包含了共享库,访问共享库里面的代码的头文件,和其他的图片和声音的资源文件.一个共享库定义的方法和函数可以被应用程序 ...

  7. 相册框架之AssetsLibrary

    看到项目中用到AssetsLibrary这个框架, 所以研究了一下 其实很简单 - (void)getAlbumPhoto { NSString *tipTextWhenNoPhotosAuthori ...

  8. iOS Photos.framework框架

    链接: iOS8.0 使用Photos.framework对相册的常用操作 iOS AssetsLibrary和Photos的使用总结: 权限及相册的获取 iOS 开发之照片框架详解 iOS Asse ...

  9. IOS-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 时间:2015-05-06 16:43:34      阅读:533      评论:0      收藏:0      [点我收藏+] ...

随机推荐

  1. PM【terminal】

    More Knowledge More Performance More Time 资料模组化 以知识管理为基础的项目管理 规范:ethic

  2. python 简单谈谈“类”

    文章出处:http://www.cnblogs.com/winstic/,请保留此连接 面向对象是python语言的一大特色,而类又是面向对象编程的核心 先来一段关于类的声明: class myCla ...

  3. Spring 初学 1

    Spring是一个轻量级的框架,他有自己的MVC框架SpringMVC,在以往的Web项目中大多采用Structs2+hibernate+Spring的框架,Structs做web层,Hibernat ...

  4. 简单学C——第四天

    数组 在学数组之前,有必要把前面的知识复习一遍,当然我的复习,仅仅只是提一下,而对于你,则应该认真的看一下前面的知识点,不懂可以百度,哈哈. 前面我们大致学了 1.定义变量,2.数据的输入与输出,3. ...

  5. MATLAB r2014a 下载+安装+激活

    MATLAB r2014a,下载包就有7个多GB,装完占用9个多GB,慎装.界面还不错,稍有改良. 其实本文是下载+安装+破解啦.读书人的事,怎么能叫破解呢?所以我这里讲的是如何激活啦. MATLAB ...

  6. ligerUI路径问题

    ligerUI放mv的Content目录下,路径为固定的并且必须引进一下文件 <link href="~/Content/Ligerui/Source/lib/ligerUI/skin ...

  7. jdbc 安装驱动

    在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是 打开eclipse 1.右击要导入jar包的项目,点properties 2.左边选择java ...

  8. bzoj 1853: [Scoi2010]幸运数字 容斥

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 1170  Solved: 406[Submit][Status] ...

  9. Phonegap 3.0 设置APP是否全屏

    Phonegap 3.0 默认是全屏,如需要取消全屏,可手动修改config, 在APP/res/xml/config.xml文件可设置preference: <?xml version='1. ...

  10. java4中创建内对象的方法

    在java程序中,对象可以被显式地或者隐式地创建.四种显式的创建对象的方式:     ● 用new语句创建对象     ● 运用反射手段,调用java.lang.Class 或者 java.lang. ...