获取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)相关推荐

  1. 获取IPhone相册中图片的方法(包括获取所有图片)

    获取iphone相册方法: 方法一: ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *gr ...

  2. Android获取本地相册中图片视频

    权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> < ...

  3. js获取html中图片路径,用js快速的获取html页面中图片的地址

    这次给大家带来用js快速的获取html页面中图片的地址,用js快速获取html页面中图片的地址的注意事项有哪些,下面就是实战案例,一起来看一下. 这篇文章主要介绍了js获取html代码中图片地址的实现 ...

  4. Python中图片处理方法 (总结)

    Python中图片处理方法 -- 进阶 一级目录 1.Python中将源文件夹中图片复制到指定文件夹 2.Python中获取文件夹内指定后缀的所有文件的文件名 三级目录 一级目录 1.Python中将 ...

  5. js实现word生成书签_js生成word中图片处理方法

    首先功能是要求前台导出word,但是前后台是分离的,图片存在后台,所以就存在跨域问题. 导出文字都是没有问题的(jquery.wordexport.js),但是导出图片就存在问题了: 图片是以链接形式 ...

  6. 【EventBus】事件通信框架 ( 订阅方法注册 | 检查订阅方法缓存 | 反射获取订阅类中的订阅方法 )

    文章目录 一.检查订阅方法缓存 二.反射获取订阅类中的订阅方法 三.完整代码示例 一.检查订阅方法缓存 注册订阅者时 , 只传入一个订阅者类对象 , 其它信息都需要通过反射获取 ; 1. 获取订阅者类 ...

  7. ajax异步获取右侧html,Ajax异步获取html数据中包含js方法无效的解决方法

    Ajax异步获取html数据中包含js方法无效的解决方法 页面上使用js写了一个获取后台数据的方法 function data() { var tab = $("#dic") $. ...

  8. 本地相册中图片水印如何去除【图片去水印工具】

    地址:本地相册中图片水印如何去除https://www.shuiyinyun.com/  照片去水印效果 操作步骤: 点击"立即下载"按钮,下载.安装并运行水印云: 点击首页的&q ...

  9. 获取库中的所有字段的描述/获取某个表中所有字段方法

    --获取库中的所有字段的描述 SELECT      [Table Name] = OBJECT_NAME(c.object_id),     [Column Name] = c.name,     ...

最新文章

  1. Linux常用指令和系统管理命令总结
  2. Python核心编程(第九章)--文件和输入输出
  3. Beta 冲刺(2/7)
  4. 启动Eureka客户端服务时报错:java.net.ConnectException: Connection refused:connect
  5. JWT、JWE、JWS 、JWK 都是什么鬼?还傻傻分不清?
  6. 传智播客毕向东java基础全套视频教程_传智播客毕向东JAVA基础教程全套视频教程(324课)...
  7. 【Java】集合实现学生管理系统
  8. C++拷贝构造函数专题
  9. 离散数学|代数系统(超详细期末复习)
  10. PS 页面描述性语言PostScript
  11. WPF 鼠标滚轮对图片的缩放
  12. 大学生html5实训报告,大学生实训心得体会范文(精选5篇)
  13. 程序员租房福利! 最新 2018年上海公积金提取 租房提取
  14. Golang 之 IED 安装(mac)
  15. Windows Server 2003 64位操作系统安装sqlserver2000企业版
  16. 前端动态生成随机图形验证码
  17. 《自己动手写嵌入式操作系统》阅读笔记之操作系统小知识
  18. 1-14 Burpsuite Repeater介绍
  19. html中背景不平铺怎么写,css怎么让背景图片不平铺?
  20. 近期修改cython文件问题汇总

热门文章

  1. Web前端是什么?Web前端包括哪些技术?
  2. 除了支付宝,微信也能查询账单了!再也不担心钱花哪去了!
  3. 视频怎么去水印和字幕
  4. CRNN:文本序列识别
  5. hive创建新表——基础
  6. 夜明け前より瑠璃色な 攻略
  7. 女人需谨记的十六条健康戒律
  8. GetDC和BeginPaint
  9. 转:乱谈Dotnet之武林秘籍
  10. 关于 nscd,nslcd 和 sssd 套件的综述