文档章节

ALAsset和ALAssetRepresentation详解

Daniel_s
 Daniel_s
发布于 2016/05/12 18:34
字数 432
阅读 43
收藏 1
点赞 2
评论 0

ALAsset类代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,ALAssetRepresentation类代表相册中每个资源文件的详细信息,可以通过它获取资源的大小,名字,路径等详细信息。

 

                        //通过ALAsset获取相对应的资源,获取图片的等比缩略图,原图的等比缩略
                        CGImageRef ratioThum = [asset aspectRatioThumbnail];
                        //获取相片的缩略图,该缩略图是相册中每张照片的poster图
                        CGImageRef thum = [asset thumbnail];
                        UIImage* rti = [UIImage imageWithCGImage:ratioThum];
                        UIImage* ti = [UIImage imageWithCGImage:thum];
                        UIImageView* v1 = [[UIImageView alloc]initWithFrame:CGRectMake(20, 100, 120, 200)];
                        v1.image = rti;
                        v1.contentMode = UIViewContentModeScaleAspectFit;
                        UIImageView* v2 = [[UIImageView alloc]initWithFrame:CGRectMake(180, 100, 120, 200)];
                        v2.image = ti;
                        v2.contentMode = UIViewContentModeScaleAspectFit;
                        [self.view addSubview:v1];
                        [self.view addSubview:v2];

 

左侧为等比缩略图效果,右侧为poster效果的缩略图

                        UIImage* ni = [UIImage imageNamed:@"new.png"];
                        //修改指定路径的图片资源内容,替换掉原来的内容
                        [asset setImageData:UIImageJPEGRepresentation(ni, 1.0) metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
                            NSLog(@"new:%@",assetURL);
                        }];
                        //根据给定的图片内容,重新生成一张新图
                        [asset writeModifiedImageDataToSavedPhotosAlbum:UIImageJPEGRepresentation(ni, 1.0) metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
                            NSLog(@"new:%@",assetURL);
                        }];
                        //获取资源图片的详细资源信息
                        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]);

本文转载自:

共有 人打赏支持
Daniel_s
粉丝 12
博文 156
码字总数 4133
作品 0
十堰
程序员
iOS的AssetsLibrary框架访问所有相片

由于博客迁移至www.coderyi.com,文章请看http://www.coderyi.com/archives/424 该框架下有几个类,ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRepresentation。 ALAs......

flyicarus
2014/10/16
0
1
在手机相册(ios设备相册)中创建相册

这篇博客的主要内容来源于cocoachina 里的贴子,代码能实现在在手机相册(ios设备相册)中创建相册的功能,下面我就原文整理,在扩展一下。 原文地址:http://www.cocoachina.com/bbs/read....

lady-奕奕
2014/05/23
0
4
ALAsset,ALAssetsLibrary,ALAssetsgroup常见属性及用法

ALAssetsgroup --------------------------------------------------------------------------- Enumerating Assets(遍历资源) Adding Assets(添加资源) property(指示程序是否可以编辑......

木木情深
2014/02/16
0
0
AGImagePickerController 发送图片 旋转90度的bug

...... _ipc.didFinishBlock = ^(NSArray *info) { [blockSelf.selectedPhotos setArray:info]; for (ALAsset * asset in info) { CGImageRef ref = [[asset defaultRepresentation]fullReso......

天舒
2015/03/06
0
0
ALAssetsLibrary用assetForURL:assetUrl resultBlock:^(ALAsset *asset)读取图片。Block执行顺序

ALAssetsLibrary *lib = [[ALAssetsLibrary alloc] init]; [lib assetForURL:assetUrl resultBlock:^(ALAsset *asset) { ALAssetRepresentation *assetRep = [asset defaultRepresentation];......

JSNS
2016/02/18
446
0
聊聊ALAssetsLibrary 与 Photos

和都是Apple提供访问系统相册资源的两个标准库,前者在iOS9之后已经被弃用,后者在iOS8上开始支持。可想而知,库提供了更全面更友好的接口。 本文通过对比两者的用法来系统地学习一下“iOS访...

foolishBoy
2017/10/25
0
0
ALAsset/PHAsset 中的图片和视频文件

http://io.upyun.com/2016/03/23/the-real-files-in-alasset-and-phasset/?utmsource=tuicool&utmmedium=referral 在微博上出现了越来越多的被标记为 Live 的图片,这种图片是一种动图 Live...

壹峰
03/27
0
0
OS 开发之照片框架详解

block 中的 group 参数值为 nil。而 stop 参数则是用于手工停止遍历,只要把 *stop 置 YES,则会停止下一次的遍历。关于这一点常常会引起误会,所以需要注意。 现在,已经可以获取相册了,接...

hejunbinlan
2016/06/24
14
0
ALAssetsLibrary详解

ALAssetsLibrary类是代表系统中整个资源库,使用它可以访问资源库中的资源和保存照片,视频等功能。 library = [[ALAssetsLibrary alloc]init]; //判断当前应用是否能访问相册资源 /* typed...

木木情深
2014/02/15
0
0
ios9下照片浏览模糊的解决方法(ALAsset.thumbnail模糊)

在ios9下,使用ALAsset方式实现的照片浏览器都存在照片模糊的问题,但是目前能找到的大部分开源的照片浏览器都是使用这个框架编写的。 我们通常用以下方法获得照片缩略图: self.image = [UI...

cuibo1123
2015/10/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

TensorFlow 线性分类

构造直线 z = 2 * x - 3 * y + 4 x0*w0+x1*w1+b=0 x1=-x0* w0/w1-b/w1 斜率 k= -w0/w1 截距 -b/w1 随机生成数据,加入一定的偏差,用直线将二维平面分为两部分 使用线性模型拟合参数 损失函数...

阿豪boy
1分钟前
0
0
翻译冒泡排序测试

翻译一个冒泡排序: var a = [1,3,2,4,6,5];var f = 0;var n = a.length ;for( var i =1; i<= n; i++) { for( var j = n-1 ; j >= i; j --) { if(a[j] < a[j+1]) { ......

钟元OSS
2分钟前
0
0
maven父、子级版本号同时修改

命令: mvn versions:set -DnewVersion=0.0.2-SNAPSHOT

沉默的懒猫
4分钟前
0
0
Spring boot中的异常处理之注解响应

Controller层 return patientRepository.findById(id) .orElseThrow(() -> new NotFoundException(String.format("Patient %d not found", id))); Exception类 @ResponseS......

亚林瓜子
5分钟前
0
0
webpack文档翻译_001

概念 webpack的核心是一个为现代JavaScript应用的打包工具(a static module bundler)。 当webpack处理应用时,在其内部,会生成一个依赖图(dependency graph),这个依赖图可以映射到项目里的...

DennisHill
5分钟前
1
0
vim 行首/行尾 批量操作

批量插入 行首插入 :%s/^/your_word/ 行尾插入:%s/$/your_word/ 按键操作 注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I(shift + i),再插入...

温子寒
6分钟前
0
0
Java语言学习(十二):多线程

Java中给多线程编程提供了内置的支持,多线程是多任务的一种特别形式,它使用了更小的资源开销。这里需要知道两个术语及其关系:进程和线程。 进程:进程是系统进行资源分配和调度的一个独立...

海岸线的曙光
12分钟前
0
0
mysql源码阅读相关文章

https://www.jianshu.com/p/e739afb8fe31

writeademo
25分钟前
0
0
CentOS7 安装MySQL8

1. 从官网拿到本地YUM源的安装包,并安装本地YUM源 2. 通过`yum install -y`命令进行MySQL的安装 3. 启动服务,并配置开机自启 4. 获取初始化密码,登录MySQL 5. 修改密码策略,然后自行设置roo...

小致dad
31分钟前
0
0
史上最简单的 IntelliJ IDEA 教程

我不是作者,我只是内容的搬运工。 传送门

颖辉小居
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部