关于ALAssetsLibrary的学习
来源:互联网 发布:软件行业税收优惠 编辑:程序博客网 时间:2024/06/05 15:39
添加AssetsLibrary.framework
然后引入
#import <AssetsLibrary/ALAssetsLibrary.h>
NSString * nsALAssetPropertyType = [ asset valueForProperty:ALAssetPropertyType ] ;
NSString * nsALAssetPropertyLocation = [ asset valueForProperty:ALAssetPropertyLocation ] ;
NSString * nsALAssetPropertyDuration = [ asset valueForProperty:ALAssetPropertyDuration ] ;
NSString * nsALAssetPropertyOrientation = [ asset valueForProperty:ALAssetPropertyOrientation ] ;
NSString * nsALAssetPropertyDate = [ asset valueForProperty:ALAssetPropertyDate ] ;
NSString * nsALAssetPropertyRepresentations = [ asset valueForProperty:ALAssetPropertyRepresentations ] ;
NSString * nsALAssetPropertyURLs = [ asset valueForProperty:ALAssetPropertyURLs ] ;
NSString * nsALAssetPropertyAssetURL = [ asset valueForProperty:ALAssetPropertyAssetURL ] ;
然后引入
#import <AssetsLibrary/ALAssetsLibrary.h>
一个获取所有图片的类
.h
#import <UIKit/UIKit.h>#include<AssetsLibrary/AssetsLibrary.h> @interface ViewController : UIViewController{ ALAssetsLibrary *library; NSArray *imageArray; NSMutableArray *mutableArray;}-(void)allPhotosCollected:(NSArray*)imgArray;@end
.m
#import "ViewController.h"@interface ViewController ()@endstatic int count=0;@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; [self getAllPictures];}//获取所有图片-(void)getAllPictures{ imageArray=[[NSArray alloc] init]; mutableArray =[[NSMutableArray alloc]init]; NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; library = [[ALAssetsLibrary alloc] init]; void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { if(result != nil) { if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]]; NSURL *url= (NSURL*) [[result defaultRepresentation]url]; [library assetForURL:url resultBlock:^(ALAsset *asset) { [mutableArray addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]]; if ([mutableArray count]==count)
{ imageArray=[[NSArray alloc] initWithArray:mutableArray]; [self allPhotosCollected:imageArray]; } } failureBlock:^(NSError *error){ NSLog(@"operation was not successfull!"); } ]; } } }; NSMutableArray *assetGroups = [[NSMutableArray alloc] init]; void (^ assetGroupEnumerator) ( ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) { if(group != nil) { [group enumerateAssetsUsingBlock:assetEnumerator]; [assetGroups addObject:group]; count=[group numberOfAssets]; } }; assetGroups = [[NSMutableArray alloc] init]; [library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:assetGroupEnumerator failureBlock:^(NSError *error) {NSLog(@"There is an error");}]; }-(void)allPhotosCollected:(NSArray*)imgArray{ //write your code here after getting all the photos from library... NSLog(@"all pictures are %@",imgArray);}@end
以下是关于AssetsLibrary的一些方法说明,仅供参考
//初始化,这个简单if (!self.assetsLibrary) {_assetsLibrary = [[ALAssetsLibrary alloc] init];}
//添加一个group,成功后查看一些信息[_assetsLibrary addAssetsGroupAlbumWithName:@"tesddt" resultBlock:^(ALAssetsGroup *group) {//查看相册的名字NSLog(@"ALAssetsGroupPropertyName:%@",[group valueForProperty:ALAssetsGroupPropertyName]);//查看相册的类型NSLog(@"ALAssetsGroupPropertyType:%@",[group valueForProperty:ALAssetsGroupPropertyType]);//查看相册的存储idNSLog(@"ALAssetsGroupPropertyPersistentID:%@",[group valueForProperty:ALAssetsGroupPropertyPersistentID]);//查看相册存储的位置地址NSLog(@"ALAssetsGroupPropertyURL:%@",[group valueForProperty:ALAssetsGroupPropertyURL]);} failureBlock:^(NSError *error) {}];可以通过valueForProperty获取到图片的信息,包括类型, Location , 时长,方向,日期,格式 , URL地址。
NSString * nsALAssetPropertyType = [ asset valueForProperty:ALAssetPropertyType ] ;
NSString * nsALAssetPropertyLocation = [ asset valueForProperty:ALAssetPropertyLocation ] ;
NSString * nsALAssetPropertyDuration = [ asset valueForProperty:ALAssetPropertyDuration ] ;
NSString * nsALAssetPropertyOrientation = [ asset valueForProperty:ALAssetPropertyOrientation ] ;
NSString * nsALAssetPropertyDate = [ asset valueForProperty:ALAssetPropertyDate ] ;
NSString * nsALAssetPropertyRepresentations = [ asset valueForProperty:ALAssetPropertyRepresentations ] ;
NSString * nsALAssetPropertyURLs = [ asset valueForProperty:ALAssetPropertyURLs ] ;
NSString * nsALAssetPropertyAssetURL = [ asset valueForProperty:ALAssetPropertyAssetURL ] ;
//通过url地址在相册资源中获取该地址的资源文件ALAsset,有可能是相片或视频[_library assetForURL:[NSURL URLWithString:@""] resultBlock:^(ALAsset *asset) {// NSString *const ALAssetPropertyType;// NSString *const ALAssetPropertyLocation;// NSString *const ALAssetPropertyDuration;// NSString *const ALAssetPropertyOrientation;// NSString *const ALAssetPropertyDate;// NSString *const ALAssetPropertyRepresentations;// NSString *const ALAssetPropertyURLs;// NSString *const ALAssetPropertyAssetURL;//查看资源的地理位置信息NSLog(@"ALAssetPropertyLocation:%@",[asset valueForProperty:ALAssetPropertyLocation]);//如果资源是视频,查看视频的时长NSLog(@"ALAssetPropertyDuration:%@",[asset valueForProperty:ALAssetPropertyDuration]);//查看资源的方向,图片的旋转方向NSLog(@"ALAssetPropertyOrientation:%@",[asset valueForProperty:ALAssetPropertyOrientation]);//查看资源的创建时间NSLog(@"ALAssetPropertyDate:%@",[asset valueForProperty:ALAssetPropertyDate]);//查看资源的描述信息NSLog(@"ALAssetPropertyRepresentations:%@",[asset valueForProperty:ALAssetPropertyRepresentations]);NSLog(@"ALAssetPropertyURLs:%@",[asset valueForProperty:ALAssetPropertyURLs]);//查看资源的url路径NSLog(@"ALAssetPropertyAssetURL:%@",[asset valueForProperty:ALAssetPropertyAssetURL]);} failureBlock:^(NSError *error) {
}];
//通过url地址获取相册资源中的一个相册[_library groupForURL:groupURL resultBlock:^(ALAssetsGroup *group) {NSLog(@"ALAssetsGroupPropertyName:%@",[group valueForProperty:ALAssetsGroupPropertyName]);} failureBlock:^(NSError *error) {}];
//根据选择的类型遍历相册资源中的相对应类型的所有相册,其中stop行参是指针,表示是否停止迭代,当赋值为false则停止// enum {// ALAssetsGroupLibrary = (1 << 0),// ALAssetsGroupAlbum = (1 << 1),// ALAssetsGroupEvent = (1 << 2),// ALAssetsGroupFaces = (1 << 3),// ALAssetsGroupSavedPhotos = (1 << 4),// ALAssetsGroupPhotoStream = (1 << 5),// ALAssetsGroupAll = 0xFFFFFFFF,// };[_library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {NSLog(@"group name:%@",[group valueForProperty:ALAssetsGroupPropertyName]);} failureBlock:^(NSError *error) {}];
//保存图片到系统默认的相册中,使用nsdata的形式,并返回照片的url地址[_library writeImageDataToSavedPhotosAlbum:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {}];
}];
//通过url地址获取相册资源中的一个相册[_library groupForURL:groupURL resultBlock:^(ALAssetsGroup *group) {NSLog(@"ALAssetsGroupPropertyName:%@",[group valueForProperty:ALAssetsGroupPropertyName]);} failureBlock:^(NSError *error) {}];
//根据选择的类型遍历相册资源中的相对应类型的所有相册,其中stop行参是指针,表示是否停止迭代,当赋值为false则停止// enum {// ALAssetsGroupLibrary = (1 << 0),// ALAssetsGroupAlbum = (1 << 1),// ALAssetsGroupEvent = (1 << 2),// ALAssetsGroupFaces = (1 << 3),// ALAssetsGroupSavedPhotos = (1 << 4),// ALAssetsGroupPhotoStream = (1 << 5),// ALAssetsGroupAll = 0xFFFFFFFF,// };[_library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {NSLog(@"group name:%@",[group valueForProperty:ALAssetsGroupPropertyName]);} failureBlock:^(NSError *error) {}];
//保存图片到系统默认的相册中,使用nsdata的形式,并返回照片的url地址[_library writeImageDataToSavedPhotosAlbum:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {}];
//保存图片到系统默认的相册中,使用cgimageref的形式,并返回照片的url地址[_library writeImageToSavedPhotosAlbum:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {}];
//保存图片到系统默认的相册中,使用cgimageref的形式,并且选择图片以什么旋转方向的形式保存,并返回照片的url地址// typedef enum {// ALAssetOrientationUp, // default orientation// ALAssetOrientationDown, // 180 deg rotation// ALAssetOrientationLeft, // 90 deg CCW// ALAssetOrientationRight, // 90 deg CW// ALAssetOrientationUpMirrored, // as above but image mirrored along other axis. horizontal flip// ALAssetOrientationDownMirrored, // horizontal flip// ALAssetOrientationLeftMirrored, // vertical flip// ALAssetOrientationRightMirrored, // vertical flip// } ALAssetOrientation;UIImage* image = [UIImage imageNamed:@"test.png"];[_library writeImageToSavedPhotosAlbum:[image CGImage] orientation:ALAssetOrientationLeft completionBlock:^(NSURL *assetURL, NSError *error) {NSLog(@"save image:%@",assetURL);}];
}];
//通过url地址获取相册资源中的一个相册[_library groupForURL:groupURL resultBlock:^(ALAssetsGroup *group) {NSLog(@"ALAssetsGroupPropertyName:%@",[group valueForProperty:ALAssetsGroupPropertyName]);} failureBlock:^(NSError *error) {}];
//根据选择的类型遍历相册资源中的相对应类型的所有相册,其中stop行参是指针,表示是否停止迭代,当赋值为false则停止// enum {// ALAssetsGroupLibrary = (1 << 0),// ALAssetsGroupAlbum = (1 << 1),// ALAssetsGroupEvent = (1 << 2),// ALAssetsGroupFaces = (1 << 3),// ALAssetsGroupSavedPhotos = (1 << 4),// ALAssetsGroupPhotoStream = (1 << 5),// ALAssetsGroupAll = 0xFFFFFFFF,// };[_library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {NSLog(@"group name:%@",[group valueForProperty:ALAssetsGroupPropertyName]);} failureBlock:^(NSError *error) {}];
//保存图片到系统默认的相册中,使用nsdata的形式,并返回照片的url地址[_library writeImageDataToSavedPhotosAlbum:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {}];
0 0
- 关于ALAssetsLibrary的学习
- 关于ALAssetsLibrary的学习
- ALAssetsLibrary学习总结
- ALAssetsLibrary的使用
- ALAssetsLibrary的理解问题
- ALAssetsLibrary
- ALAssetsLibrary
- IOS7 第一次接触ALAssetsLibrary,简单介绍一下ALAssetsLibrary的作用
- ALAssetsLibrary读取相册里面的图片
- iOS的ALAssetsLibrary框架访问所有相片
- 关于ios9中得ALAssetsLibrary框架过时问题
- 解决iOS8下ALAssetsLibrary创建相册的bug
- ALAssetsLibrary详解
- ALAssetsLibrary详解
- ALAssetsLibrary详解
- ALAssetsLibrary 介绍
- ALAssetsLibrary详解
- ALAssetsLibrary详解
- 用百度API在地图上画出一只恐龙
- Java修饰符 abstract,static,final 的区别详解
- 使用js代码完成页面文本防复制功能
- URL与资源
- camera 大全
- 关于ALAssetsLibrary的学习
- LeetCode—187.Repeated DNA Sequences
- 属性字符串(富文本)的使用
- linux下安装php+apache+mysql集成环境
- 菜鸟学习Spring——SpringMVC注解版在服务器端获取Json字符串并解析
- swagger-ui教程-构建api接口文档工具
- 高效加载大图
- /usr/bin/ld: cannot find -l**** 问题的解决办法
- 关于Firefox浏览器submit提交无效的问题