获取IPhone相册中图片的方法(ASSets)
获取iphone相册方法:
方法一:
ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock =
^(ALAssetsGroup *group, BOOL *stop) {
if (group!=nil) {
[groups addObject:group];
} else {
[self.tableView performSelectorOnMainThread:@selector(reloadData)
withObject:nil waitUntilDone:YES];
}
};
ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error)
{
NSString *errorMessage = nil;
switch ([error code]) {
case ALAssetsLibraryAccessUserDeniedError:
case ALAssetsLibraryAccessGloballyDeniedError:
errorMessage = @"The user has declined access to it.";
break;
default:
errorMessage = @"Reason unknown.";
break;
}
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Opps"
message:errorMessage delegate:self cancelButtonTitle:@"Cancel"
otherButtonTitles:nil, nil];
[alertView show];
[alertView release];
};
NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupEvent |
ALAssetsGroupFaces;
ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
[assetsLibrary enumerateGroupsWithTypes:groupTypes
usingBlock:listGroupBlock failureBlock:failureBlock];
[assetsLibrary release];
方法二:
void (^assetGroupEnumerator)(ALAssetsGroup *, BOOL *) =
^(ALAssetsGroup *group, BOOL *stop)
{
if (group == nil)
{
[self.tableView performSelectorOnMainThread:@selector(reloadData)
withObject:nil waitUntilDone:YES];
return;
}
[groups addObject:group];
};
void (^assetGroupEnumberatorFailure)(NSError *) = ^(NSError *error)
{
NSString *errorMessage = nil;
switch ([error code]) {
case ALAssetsLibraryAccessUserDeniedError:
case ALAssetsLibraryAccessGloballyDeniedError:
errorMessage = @"The user has declined access to it.";
break;
default:
errorMessage = @"Reason unknown.";
break;
}
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Opps"
message:errorMessage delegate:self cancelButtonTitle:@"Cancel"
otherButtonTitles:nil, nil];
[alertView show];
[alertView release];
};
ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
[assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:assetGroupEnumerator
failureBlock:assetGroupEnumberatorFailure];
[assetsLibrary release];
以上是获取所有ALAssetsGroup,即相册对象。
获取相册的标示照片:
ALAssetsGroup *group = [groups objectAtIndex:index];
CGImageRef posterImageRef = [group posterImage];
UIImage *posterImage = [UIImage
imageWithCGImage:posterImageRef];
获取相册中的所有对象(相片和录像等):
group = (ALAssetsGroup*)[assetGroups objectAtIndex:index];
[group setAssetsFilter:[ALAssetsFilter allAssets]];
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger
index, BOOL *stop)
{
if(result == nil)
{
return;
}
//获取相片的url:
NSString *url = [[[result
defaultRepresentation]url]description];
[self.urls addObject:url];
[self.assets addObject:result];
}];
只获取照片的方法:
ALAssetsGroupEnumerationResultsBlock assetsEnumerationBlock =
^(ALAsset *result, NSUInteger index, BOOL *stop) {
if (result) {
[assets addObject:result];
}
};
ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilter allPhotos];
[assetsGroup setAssetsFilter:onlyPhotosFilter];
[assetsGroup enumerateAssetsUsingBlock:assetsEnumerationBlock];
获得的ALAsset对象就是相片对象:其中有相片的缩略图,全屏图,高清图,url等属性。
ALAsset *result = [assets objectAtIndex:index];
获取url:
String类型:
NSString *url = [[[result
defaultRepresentation]url]description];
URL类型:
NSURL *url = [[result defaultRepresentation]url];
获取缩略图:
CGImageRef ref = [result thumbnail];
UIImage *img = [[UIImage alloc]initWithCGImage:ref];
获取全屏相片:
CGImageRef ref = [[result defaultRepresentation]fullScreenImage];
UIImage *img = [[UIImage alloc]initWithCGImage:ref];
获取高清相片:
CGImageRef ref = [[result defaultRepresentation]fullResolutionImage];
UIImage *img = [[UIImage alloc]initWithCGImage:ref];
根据ALAsset的url获取ALAsset对象:
void (^assetRseult)(ALAsset *) = ^(ALAsset *result)
{
if (result == nil)
{
return;
}
UIImage *image = [UIImage imageWithCGImage:[[result defaultRepresentation]fullScreenImage]];
[self.images addObject:image];
[self.assetArrays addObject:result];
};
void (^failureBlock)(NSError *) = ^(NSError *error) {
UIAlertView * alert = [[UIAlertView alloc]
initWithTitle:@"Error"
message:[NSString stringWithFormat:@"Error: %@", [error description]]
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
[alert release];
NSLog(@"A problem occured %@", [error description]);
};
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetUrl resultBlock:assetRseult failureBlock:failureBlock];
[library release];
resultBlock也可以如此定义:
ALAssetsLibraryAssetForURLResultBlock assetsResultBlock = ^(ALAsset *result)
{
if (result == nil)
{
return;
}
UIImage *image = [UIImage imageWithCGImage:[[result defaultRepresentation]fullScreenImage]];
[self.images addObject:image];
[self.assetArrays addObject:result];
};
获取照片的时间:
-(void)getDate:(ALAsset*)rule
{
NSDictionary *dic = [[rule defaultRepresentation]metadata];
id dateTime = [[dic objectForKey:@"{TIFF}"]objectForKey:@"DateTime"];
if (dateTime!=nil) {
NSArray *time = [dateTime
componentsSeparatedByCharactersInSet:[NSCharacterSet
whitespaceCharacterSet]];
NSString *dataStr = [time objectAtIndex:0];
if (![date containsObject:dataStr]) {
[date addObject:[time objectAtIndex:0]];
}
}
}
获取IPhone相册中图片的方法(ASSets)相关推荐
- 获取IPhone相册中图片的方法(包括获取所有图片)
获取iphone相册方法: 方法一: ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *gr ...
- Android获取本地相册中图片视频
权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> < ...
- js获取html中图片路径,用js快速的获取html页面中图片的地址
这次给大家带来用js快速的获取html页面中图片的地址,用js快速获取html页面中图片的地址的注意事项有哪些,下面就是实战案例,一起来看一下. 这篇文章主要介绍了js获取html代码中图片地址的实现 ...
- Python中图片处理方法 (总结)
Python中图片处理方法 -- 进阶 一级目录 1.Python中将源文件夹中图片复制到指定文件夹 2.Python中获取文件夹内指定后缀的所有文件的文件名 三级目录 一级目录 1.Python中将 ...
- js实现word生成书签_js生成word中图片处理方法
首先功能是要求前台导出word,但是前后台是分离的,图片存在后台,所以就存在跨域问题. 导出文字都是没有问题的(jquery.wordexport.js),但是导出图片就存在问题了: 图片是以链接形式 ...
- 【EventBus】事件通信框架 ( 订阅方法注册 | 检查订阅方法缓存 | 反射获取订阅类中的订阅方法 )
文章目录 一.检查订阅方法缓存 二.反射获取订阅类中的订阅方法 三.完整代码示例 一.检查订阅方法缓存 注册订阅者时 , 只传入一个订阅者类对象 , 其它信息都需要通过反射获取 ; 1. 获取订阅者类 ...
- ajax异步获取右侧html,Ajax异步获取html数据中包含js方法无效的解决方法
Ajax异步获取html数据中包含js方法无效的解决方法 页面上使用js写了一个获取后台数据的方法 function data() { var tab = $("#dic") $. ...
- 本地相册中图片水印如何去除【图片去水印工具】
地址:本地相册中图片水印如何去除https://www.shuiyinyun.com/ 照片去水印效果 操作步骤: 点击"立即下载"按钮,下载.安装并运行水印云: 点击首页的&q ...
- 获取库中的所有字段的描述/获取某个表中所有字段方法
--获取库中的所有字段的描述 SELECT [Table Name] = OBJECT_NAME(c.object_id), [Column Name] = c.name, ...
最新文章
- Linux常用指令和系统管理命令总结
- Python核心编程(第九章)--文件和输入输出
- Beta 冲刺(2/7)
- 启动Eureka客户端服务时报错:java.net.ConnectException: Connection refused:connect
- JWT、JWE、JWS 、JWK 都是什么鬼?还傻傻分不清?
- 传智播客毕向东java基础全套视频教程_传智播客毕向东JAVA基础教程全套视频教程(324课)...
- 【Java】集合实现学生管理系统
- C++拷贝构造函数专题
- 离散数学|代数系统(超详细期末复习)
- PS 页面描述性语言PostScript
- WPF 鼠标滚轮对图片的缩放
- 大学生html5实训报告,大学生实训心得体会范文(精选5篇)
- 程序员租房福利! 最新 2018年上海公积金提取 租房提取
- Golang 之 IED 安装(mac)
- Windows Server 2003 64位操作系统安装sqlserver2000企业版
- 前端动态生成随机图形验证码
- 《自己动手写嵌入式操作系统》阅读笔记之操作系统小知识
- 1-14 Burpsuite Repeater介绍
- html中背景不平铺怎么写,css怎么让背景图片不平铺?
- 近期修改cython文件问题汇总