需要导入这个库
#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);
}];
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。