• ALAssetsLibrary使用


    在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.");
                                            }];
             
        });
     
    相关文章:
    http://blog.csdn.net/kingsley_cxz/article/details/9165951
  • 相关阅读:
    Redpine的Lite-Fi解决方案获Wi-Fi CERTIFIED认证
    植物园偶遇一直喵
    美食篇
    端午节路过南站
    黄山云海
    一品黄山 天高云淡
    黄山的日出日落
    宏村,寻找你的前世今生
    git把本地文件上传到github上的步骤
    一张照片一个故事
  • 原文地址:https://www.cnblogs.com/langtianya/p/3985306.html
Copyright © 2020-2023  润新知