ALAssetsLibrary

这篇博客主要介绍如何利用ALAssetsLibrary框架来访问和操作iOS设备的照片库,包括导入相关头文件和使用关键类ALAsset, ALAssetsLibrary, ALAssetsGroup, ALAssetRepresentation。" 131672997,1351607,深入解析Android eBPF辅助函数,"['android', 'linux', 'eBPF']
摘要由CSDN通过智能技术生成
在iOS中,我们调用摄像头和选择相册中的资源,我们可以使用:UIImagePickerController类来完成。
 
当然,我们也可以不使用UI的形式来访问iOS设备的相册资源。
那就是使用:ALAssetsLibrary
 
一、ALAssetsLibrary是什么
 
可以说,是一个桥梁把。连接了我们应用程序和相册之间的访问。
ALAssetsLibrary提供了我们对iOS设备中的相片、视频的访问。
 
ALAssetsLibrary被封装在 框架中。所以,我们在使用时,需要引入该框架。
 
需添加AssetsLibrary.framework 
然后引入 

#import <AssetsLibrary/ALAsset.h>

#import <AssetsLibrary/ALAssetsLibrary.h>

#import <AssetsLibrary/ALAssetsGroup.h>

#import <AssetsLibrary/ALAssetRepresentation.h>

 

复制代码
self.assetsLibrary = [[ALAssetsLibrary alloc] init];
    dispatch_queue_t dispatchQueue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_async(dispatchQueue, ^(void) {
        // 遍历所有相册
        [self.assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll
                                          usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
                                              // 遍历每个相册中的项ALAsset
                                              [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index,BOOL *stop) {
                                                   
                                                  __block BOOL foundThePhoto = NO;
                                                  if (foundThePhoto){
                                                      *stop = YES;
                                                  }
                                                  // ALAsset的类型
                                                  NSString *assetType = [result valueForProperty:ALAssetPropertyType];
                                                  if ([assetType isEqualToString:ALAssetTypePhoto]){
                                                      foundThePhoto = YES;
                                                      *stop = YES;
                                                      ALAssetRepresentation *assetRepresentation =[result defaultRepresentation];
                                                      CGFloat imageScale = [assetRepresentation scale];
                                                      UIImageOrientation imageOrientation = (UIImageOrientation)[assetRepresentation orientation];
                                                      dispatch_async(dispatch_get_main_queue(), ^(void) {
                                                          CGImageRef imageReference = [assetRepresentation fullResolutionImage];
                                                          // 对找到的图片进行操作
                                                          UIImage *image =[[UIImage alloc] initWithCGImage:imageReference scale:imageScale orientation:imageOrientation];
                                                          if (image != nil){
                                                              //获取到第一张图片
                                                          } else {
                                                              NSLog(@"Failed to create the image.");
                                                          } });
                                                  }
                                              }];
                                          }
                                        failureBlock:^(NSError *error) {
                                            NSLog(@"Failed to enumerate the asset groups.");
                                        }];
         
    });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值