iOS ALAssetsLibrary的基本使用

发布时间:2020-06-23 16:29:04 作者:大头狼小鬼
来源:网络 阅读:2411

需要导入这个库

#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);

    }];



推荐阅读:
  1. iOS应用部分权限控制
  2. IOS 判断相册是否允许访问

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

ios la

上一篇:C#Singleton模式实现方法及案例

下一篇:K8S容器调度优先级误设导致集群雪崩踩坑记录

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》