需要导入这个库

#import <AssetsLibrary/AssetsLibrary.h>


//ALAssetsLibrary这个类是系统的资源库,可以用它来访问图片,视频,资源等功能

//返回照片数据授权该应用程序状态

int author = [ALAssetsLibrary authorizationStatus];

//typedef NS_ENUM(NSInteger, ALAuthorizationStatus) {

//ALAuthorizationStatusNotDetermined 0

//用户尚未选择关于这个应用程序

//ALAuthorizationStatusRestricted 1

//这个应用程序未被授权访问图片数据。

//ALAuthorizationStatusDenied 2

//用户已经明确否认了这个应用程序访问图片数据。

// ALAuthorizationStatusAuthorized 3

// 授权此应用程序访问数据照片。

//禁用检索和共享照片流的通知

[ALAssetsLibrary disableSharedPhotoStreamsSupport];



ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];

//创建一个相册到相册资源中,并通过block返回创建成功的相册ALAssetsGroup

//addAssetsGroupAlbumWithName相册的名字

[assetsLibrary addAssetsGroupAlbumWithName:@"photo" resultBlock:^(ALAssetsGroup *group) {

//ALAssetsGroupPropertyName; //查看相册存储的名字

//ALAssetsGroupPropertyType; //查看相册存储的类型

//ALAssetsGroupPropertyPersistentID; //查看相册的存储的ID

//ALAssetsGroupPropertyURLNSURL; //查看相册的存储的地址

NSLog(@"%@",[group valueForProperty:ALAssetsGroupPropertyName]);


} failureBlock:^(NSError *error) {

NSLog(@"%@",error);

}];

//获取相册资源中相片或视频的基本信息 assetForURL 图片或视频的地址

[assetsLibrary assetForURL:nil resultBlock:^(ALAsset *asset) {

NSLog(@"%@",asset);

//ALAssetPropertyType 类型

//ALAssetPropertyLocation 查看资源的地理位置信息

//ALAssetPropertyDuration 如果资源是视频,查看视频的时长

//ALAssetPropertyOrientation 资源的旋转方向

//ALAssetPropertyDate 时间

//ALAssetPropertyRepresentations 描述信息

//ALAssetPropertyURLs 路径

//ALAssetPropertyAssetURL 资源的地址

//ALAssetTypePhoto 照片

//ALAssetTypeVideo 视频

//ALAssetTypeUnknown 不知道类型

} failureBlock:^(NSError *error) {

NSLog(@"%@",error);


}];

//通过url地址获取相册资源中的一个相册

[assetsLibrary groupForURL:nil resultBlock:^(ALAssetsGroup *group) {

NSLog(@"%@",group);

//ALAssetsGroupPropertyName 名字

//ALAssetsGroupPropertyType 类型

//ALAssetsGroupPropertyPersistentID 存储的id

//ALAssetsGroupPropertyURL 存储的地址

} failureBlock:^(NSError *error) {

NSLog(@"%@",error);

}];


//保存图片到系统默认的相册中,使用CGImageRef的形式,并返回照片的url地址

[assetsLibrary writeImageToSavedPhotosAlbum:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {

}];

//保存图片到系统默认的相册中,使用NSData的形式,并返回照片的url地址

[assetsLibrary writeImageDataToSavedPhotosAlbum:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {

}];

//保存图片到系统默认的相册中,使用NSURL的形式,并返回照片的url地址

[assetsLibrary writeVideoAtPathToSavedPhotosAlbum:nil completionBlock:^(NSURL *assetURL, NSError *error) {

}];

//ALAssetOrientationUp default orientation

//ALAssetOrientationDown 180 deg rotation

//ALAssetOrientationLeft 90 deg CCW

//ALAssetOrientationRight 90 deg CW

//ALAssetOrientationUpMirrored as above but p_w_picpath mirrored along other axis. horizontal flip

//ALAssetOrientationDownMirrored horizontal flip

//ALAssetOrientationLeftMirrored vertical flip

//ALAssetOrientationRightMirrored vertical flip

//保存图片到系统默认的相册中,使用CGImageRef的形式和图片的方向,并返回照片的url地址

[assetsLibrary writeImageToSavedPhotosAlbum:nil orientation:ALAssetOrientationUp completionBlock:^(NSURL *assetURL, NSError *error) {

}];

//ALAssetsGroupLibrary 资源

//ALAssetsGroupAlbum 所有专辑从iTunes或同步到设备上。

//ALAssetsGroupEvent iTunes同步的事件

//ALAssetsGroupFaces iTunes同步的专辑

//ALAssetsGroupSavedPhotos 保存的照片专辑。

//ALAssetsGroupPhotoStream 所有的图片的组

//ALAssetsGroupAll 所有的图片

//获取相册图片

[assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {

if(group){

[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {

if(result){

//获取资源图片的详细资源信息

ALAssetRepresentation *representation =[result defaultRepresentation];

[_libaryPotoArry addObject:[UIImage p_w_picpathWithCGImage:representation.fullResolutionImage]];

//图片的长宽

CGSize dimension = [representation dimensions];

//图片的高清图

[representation fullResolutionImage];

//图片的全屏图

[representation fullScreenImage];

//图片的名字

NSString* filename = [representation filename];

//缩放倍数

[representation scale];

//容量大小

[representation size];

//原数据

[representation metadata];

//旋转方向

[representation orientation];

//资源图片url地址,该地址和ALAsset通过ALAssetPropertyAssetURL获取的url地址是一样的

NSURL* url = [representation url];

//资源图片uti,唯一标示符

NSLog(@"uti:%@",[representation UTI]);

}

}];

}

} failureBlock:^(NSError *error) {

NSLog(@"%@",error);

}];