iPhone ALAssetsLibrary 获取所有图像并进行编辑

Posted

技术标签:

【中文标题】iPhone ALAssetsLibrary 获取所有图像并进行编辑【英文标题】:iPhone ALAssetsLibrary get all images and edit 【发布时间】:2011-09-27 14:34:08 【问题描述】:

请帮我解决我的问题:

我可以使用 ALAssetsLibrary 为 iPhone 库中的所有图像/视频提供 URL 和元数据吗? 我可以编辑/删除这些图像/视频吗?

【问题讨论】:

【参考方案1】:

上面的代码遗漏了一些大括号,所以在下面解决了

ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
assets = [[NSMutableArray alloc] init];
[al enumerateGroupsWithTypes:ALAssetsGroupAll

                  usingBlock:^(ALAssetsGroup *group, BOOL *stop)
 
     [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
      
          if (asset)
            
               NSLog(@"%@",asset);  

              NSLog(@".. do something with the asset");    
          
      
      ];
 

                         failureBlock:^(NSError *error)
      
          // User did not allow access to library
         // .. handle error 
      
      ] ;

【讨论】:

【参考方案2】:

查看 ALAssetsLibrary here 的文档。要访问所有照片和视频,您需要枚举照片库中的所有组(相册),然后枚举每个组中的所有照片和图像。您无法使用 API 删除资产。 ios 5 添加了额外的功能——尽管它仍处于 NDA 之下,无法在此处讨论——请查看 iOS5 的 beta 文档和 Apple 开发者论坛。

您的代码将需要执行以下操作:

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


[al enumerateGroupsWithTypes:ALAssetsGroupAll

    usingBlock:^(ALAssetsGroup *group, BOOL *stop)
    
        [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
        
            if (asset)
                            
                 .. do something with the asset
            
        
        ];
    

    failureBlock:^(NSError *error)
    
        // User did not allow access to library
        .. handle error 
    
 ];

【讨论】:

谢谢。我在资产组方面遇到了问题,你帮了我。

以上是关于iPhone ALAssetsLibrary 获取所有图像并进行编辑的主要内容,如果未能解决你的问题,请参考以下文章

ALAssetsLibrary 获取所有视频

尝试使用 ALAssetsLibrary 检索一组照片

使用 writeImageToSavedPhotosAlbum 时获取文件名

iOS - ALAssetsLibrary 使用的缓存数据未更新

ALAssetsLibrary 获取相机胶卷

有没有 ALAssetsLibrary 的样本