当前位置:编程学习 > wap >>

如何将图片保存至自定义分组

 一般我们照片存储都是直接存储在相机胶卷中,调用下面的方法就可以了:


[plain]
void UIImageWriteToSavedPhotosAlbum ( 
   UIImage  *image, 
   id       completionTarget, 
   SEL      completionSelector, 
   void     *contextInfo 
); 

void UIImageWriteToSavedPhotosAlbum (
   UIImage  *image,
   id       completionTarget,
   SEL      completionSelector,
   void     *contextInfo
);
       但是如果我们想将图片存储到自定义的分组该怎么做呢,我查了一下ALAssetsLibrary的文档,发现没有相应的方法,好吧,google一下,发现了一篇文章:点击打开链接。

       作者的解决思路如下:

1.将图片先保存到相机胶卷中;

2.在相机胶卷中找到这个图片所创建的AlAsset;

3.将此AlAsset添加到你需要存放的自定义分组中。

 


      主要代码如下所示,注释也很清楚了:


[plain]
-(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock 

    //write the image data to the assets library (camera roll) 
    [self writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation  
                        completionBlock:^(NSURL* assetURL, NSError* error) { 
                               
                          //error handling 
                          if (error!=nil) { 
                              completionBlock(error); 
                              return; 
                          } 
 
                          //add the asset to the custom photo album 
                          [self addAssetURL: assetURL  
                                    toAlbum:albumName  
                        withCompletionBlock:completionBlock]; 
                           
                      }]; 

-(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock
{
    //write the image data to the assets library (camera roll)
    [self writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation
                        completionBlock:^(NSURL* assetURL, NSError* error) {
                             
                          //error handling
                          if (error!=nil) {
                              completionBlock(error);
                              return;
                          }

                          //add the asset to the custom photo album
                          [self addAssetURL: assetURL
                                    toAlbum:albumName
                        withCompletionBlock:completionBlock];
                         
                      }];
}
[plain]
-(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock 

    __block BOOL albumWasFound = NO; 
     
    //search all photo albums in the library 
    [self enumerateGroupsWithTypes:ALAssetsGroupAlbum  
                        usingBlock:^(ALAssetsGroup *group, BOOL *stop) { 
 
                            //compare the names of the albums 
                            if ([albumName compare: [group valueForProperty:ALAssetsGroupPropertyName]]==NSOrderedSame) { 
&nbs

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,