ios 获取手机中所有图片
2015-09-16 10:14
495 查看
这里我用的是AssetsLibrary来获取手机中的所有图片,废话不多说。
首先我们得导入相关的库
#import <AssetsLibrary/AssetsLibrary.h>
代码:
photo = [[NSMutableArray
alloc]init];
ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary
alloc] init];
dispatch_queue_t dispatchQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0);
dispatch_async(dispatchQueue, ^(void){
//遍历所有相册
[assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:^(ALAssetsGroup *group,
BOOL *stop){
[group enumerateAssetsUsingBlock:^(ALAsset *result,
NSUInteger index, BOOL *stop){
NSString *assetType = [result
valueForProperty:ALAssetPropertyType];
NSDictionary *url = [result
valueForProperty:ALAssetPropertyURLs];
if ([assetType
isEqualToString:ALAssetTypePhoto])
{
[photo
addObject:url];
NSLog(@"url == %@", url);
}
}];
dispatch_async(dispatch_get_main_queue(), ^{
if (photo !=
nil)
{
//我不知道这里来调用会不会有什么不好
}
});
}
failureBlock:^(NSError *error)
{
NSLog(@"failed");
}];
});
这样我们所有的图片的url 就放到 photo 这个数组中了,调用的话:
UIImageView *imgView = [[UIImageView
alloc]initWithFrame:CGRectMake(5,
5, 20,
20)];
ALAssetsLibrary *lib = [[ALAssetsLibrary
alloc] init] ;
[lib assetForURL:[[photo
objectAtIndex:0]
valueForKey:@"public.jpeg"]
resultBlock:^(ALAsset *asset)
{
//这里可以获取照片的相关信息
ALAssetRepresentation *assetRep = [asset
defaultRepresentation];
//获取缩略图
CGImageRef imgRef = asset.thumbnail;
imgView.image = [UIImage
imageWithCGImage:imgRef
scale:assetRep.scale
orientation:(UIImageOrientation)assetRep.orientation];
}
failureBlock:^(NSError *error)
{
NSLog(@"failed!!");
}];
首先我们得导入相关的库
#import <AssetsLibrary/AssetsLibrary.h>
代码:
photo = [[NSMutableArray
alloc]init];
ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary
alloc] init];
dispatch_queue_t dispatchQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0);
dispatch_async(dispatchQueue, ^(void){
//遍历所有相册
[assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:^(ALAssetsGroup *group,
BOOL *stop){
[group enumerateAssetsUsingBlock:^(ALAsset *result,
NSUInteger index, BOOL *stop){
NSString *assetType = [result
valueForProperty:ALAssetPropertyType];
NSDictionary *url = [result
valueForProperty:ALAssetPropertyURLs];
if ([assetType
isEqualToString:ALAssetTypePhoto])
{
[photo
addObject:url];
NSLog(@"url == %@", url);
}
}];
dispatch_async(dispatch_get_main_queue(), ^{
if (photo !=
nil)
{
//我不知道这里来调用会不会有什么不好
}
});
}
failureBlock:^(NSError *error)
{
NSLog(@"failed");
}];
});
这样我们所有的图片的url 就放到 photo 这个数组中了,调用的话:
UIImageView *imgView = [[UIImageView
alloc]initWithFrame:CGRectMake(5,
5, 20,
20)];
ALAssetsLibrary *lib = [[ALAssetsLibrary
alloc] init] ;
[lib assetForURL:[[photo
objectAtIndex:0]
valueForKey:@"public.jpeg"]
resultBlock:^(ALAsset *asset)
{
//这里可以获取照片的相关信息
ALAssetRepresentation *assetRep = [asset
defaultRepresentation];
//获取缩略图
CGImageRef imgRef = asset.thumbnail;
imgView.image = [UIImage
imageWithCGImage:imgRef
scale:assetRep.scale
orientation:(UIImageOrientation)assetRep.orientation];
}
failureBlock:^(NSError *error)
{
NSLog(@"failed!!");
}];
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android wifi 无线调试
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- 手机4大隐藏功能及使用必知常识第1/2页
- upload上传单张图片
- 图片引发的溢出危机(图)
- C#实现把彩色图片灰度化代码分享
- C#将图片和字节流互相转换并显示到页面上
- C#监控文件夹并自动给图片文件打水印的方法
- 纯CSS实现的当鼠标移上图片添加阴影效果代码
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法