iOS 获取本地相册的所有图片
来源:互联网 发布:淘宝服装时尚图片模板 编辑:程序博客网 时间:2024/05/10 01:36
#import <AssetsLibrary/AssetsLibrary.h>
#pragma mark -获取本地所有图片
//url装image
- (void)getImage:(NSString*)urlStr
{
ALAssetsLibrary *assetLibrary=[[ALAssetsLibraryalloc]init];
NSURL *url=[NSURLURLWithString:urlStr];
[assetLibrary assetForURL:urlresultBlock:^(ALAsset*asset) {
ALAssetRepresentation *rap = [asset defaultRepresentation];
CGImageRef ref = [rap fullScreenImage];
//大图
UIImage *image=[UIImageimageWithCGImage:ref];
//缩略图
// UIImage *image=[UIImage imageWithCGImage:asset.thumbnail];
if ([assetvalueForProperty:ALAssetTypePhoto]) {
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
//url装image
- (void)getImage:(NSString*)urlStr
{
ALAssetsLibrary *assetLibrary=[[ALAssetsLibraryalloc]init];
NSURL *url=[NSURLURLWithString:urlStr];
[assetLibrary assetForURL:urlresultBlock:^(ALAsset*asset) {
ALAssetRepresentation *rap = [asset defaultRepresentation];
CGImageRef ref = [rap fullScreenImage];
//大图
UIImage *image=[UIImageimageWithCGImage:ref];
//缩略图
// UIImage *image=[UIImage imageWithCGImage:asset.thumbnail];
if ([assetvalueForProperty:ALAssetTypePhoto]) {
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_async(globalQueue, ^{
//将取得的image保存到数据源 用于后续赋值
[self.dataSourceaddObject:image];
});
}
});
}
//刷新
dispatch_queue_tmainQueue =dispatch_get_main_queue();
dispatch_async(mainQueue, ^{
[self.collectionViewreloadData];
});
}failureBlock:^(NSError*error) {
NSLog(@"error=%@",error);
}];
}
//获取相册的所有图片
- (void)reloadImagesFromLibrary
{
NSMutableArray *images = [[NSMutableArrayalloc]init];
dispatch_async(dispatch_get_main_queue(), ^{
@autoreleasepool {
ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError*myerror){
NSLog(@"相册访问失败=%@", [myerrorlocalizedDescription]);
if ([myerror.localizedDescriptionrangeOfString:@"Global denied access"].location!=NSNotFound) {
NSLog(@"无法访问相册.请在'设置->定位服务'设置为打开状态.");
}else{
NSLog(@"相册访问失败.");
}
};
ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset*result,NSUIntegerindex,BOOL *stop){
if (result!=NULL) {
if ([[resultvalueForProperty:ALAssetPropertyType]isEqualToString:ALAssetTypePhoto]) {
NSString *urlstr=[NSStringstringWithFormat:@"%@",result.defaultRepresentation.url];//图片的url
dispatch_async(mainQueue, ^{
[self.collectionViewreloadData];
});
}failureBlock:^(NSError*error) {
NSLog(@"error=%@",error);
}];
}
//获取相册的所有图片
- (void)reloadImagesFromLibrary
{
NSMutableArray *images = [[NSMutableArrayalloc]init];
dispatch_async(dispatch_get_main_queue(), ^{
@autoreleasepool {
ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError*myerror){
NSLog(@"相册访问失败=%@", [myerrorlocalizedDescription]);
if ([myerror.localizedDescriptionrangeOfString:@"Global denied access"].location!=NSNotFound) {
NSLog(@"无法访问相册.请在'设置->定位服务'设置为打开状态.");
}else{
NSLog(@"相册访问失败.");
}
};
ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset*result,NSUIntegerindex,BOOL *stop){
if (result!=NULL) {
if ([[resultvalueForProperty:ALAssetPropertyType]isEqualToString:ALAssetTypePhoto]) {
NSString *urlstr=[NSStringstringWithFormat:@"%@",result.defaultRepresentation.url];//图片的url
[imagesaddObject:urlstr];
//有一张图片自动执行一次
[selfgetImage:urlstr];
}
}
};
ALAssetsLibraryGroupsEnumerationResultsBlock libraryGroupsEnumeration = ^(ALAssetsGroup* group,BOOL* stop){
if (group ==nil)
{
}
if (group!=nil) {
NSString *g=[NSStringstringWithFormat:@"%@",group];//获取相簿的组
NSLog(@"gg:%@",g);//gg:ALAssetsGroup - Name:Camera Roll, Type:Saved Photos, Assets count:71
NSString *g1=[g substringFromIndex:16] ;
NSArray *arr=[[NSArrayalloc]init];
arr=[g1 componentsSeparatedByString:@","];
NSString *g2=[[arr objectAtIndex:0]substringFromIndex:5];
if ([g2isEqualToString:@"Camera Roll"]) {
g2=@"相机胶卷";
}
// NSString *groupName=g2;//组的name
[group enumerateAssetsUsingBlock:groupEnumerAtion];
}
};
ALAssetsLibrary* library = [[ALAssetsLibraryalloc]init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:libraryGroupsEnumeration
failureBlock:failureblock];
}
});
}
}
};
ALAssetsLibraryGroupsEnumerationResultsBlock libraryGroupsEnumeration = ^(ALAssetsGroup* group,BOOL* stop){
if (group ==nil)
{
}
if (group!=nil) {
NSString *g=[NSStringstringWithFormat:@"%@",group];//获取相簿的组
NSLog(@"gg:%@",g);//gg:ALAssetsGroup - Name:Camera Roll, Type:Saved Photos, Assets count:71
NSString *g1=[g substringFromIndex:16] ;
NSArray *arr=[[NSArrayalloc]init];
arr=[g1 componentsSeparatedByString:@","];
NSString *g2=[[arr objectAtIndex:0]substringFromIndex:5];
if ([g2isEqualToString:@"Camera Roll"]) {
g2=@"相机胶卷";
}
// NSString *groupName=g2;//组的name
[group enumerateAssetsUsingBlock:groupEnumerAtion];
}
};
ALAssetsLibrary* library = [[ALAssetsLibraryalloc]init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:libraryGroupsEnumeration
failureBlock:failureblock];
}
});
}
0 1
- iOS 获取本地相册的所有图片
- 获取本地所有图片显示并可多选的本地相册
- ios获取本地所有图片
- iOS获取相册中所有图片
- 获取本地相册图片
- 获取本地相册图片
- 获取本地所有的视频及缩略图片、获取本地相册图片、调用本地摄像机录制视频及获取其图片
- iOS Zbar获取相册本地图片扫描二维码
- 从本地相册获取图片
- 循环获取本地相册图片
- 关于AssetsLibrary无法获取本地所有相册的问题
- app 获取ios相册的图片
- 【学习ios之路:UI系列】获取通过UIImagePackerController获取的系统相册图片的名称信息及保存系统相册到本地
- 从android相册获取所有图片的路径
- iOS---如何获取手机的本地照片和相册
- iOS获取相册图片视频
- IOS获取系统相册图片
- ios获取所有相册的视频并播放
- CoreLocation
- Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
- (一般)POJ-1328 区间贪心,几何
- Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForUmengDebug'. > com.androi
- Android 常用的颜色
- iOS 获取本地相册的所有图片
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- Android学习之路
- MapKit
- 第5周 经典小游戏程序 打飞机
- Xml文件的生成
- 编译器bug
- scala中的option、option[T]、Right和Left
- 接受屏幕输入转换为大写 via InputStreamReader & System.in