简体   繁体   English

将照片保存到照片库中的文件夹

[英]Save a photo to a folder in photo library

So I know that using the following saves an image to the general camera roll: 所以我知道使用以下内容将图像保存到普通相机胶卷:

UIImage *image = imageView.image;
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); 

But what I want to do is save the photos to a specifically named folder in my photo library. 但我想要做的是将照片保存到我照片库中的特定命名文件夹中。 For instance, any photo I take with Instagram is saved to an Instagram folder in my library. 例如,我用Instagram拍摄的任何照片都会保存到我图书馆的Instagram文件夹中。 This also works for snapchat. 这也适用于Snapchat。

First you need to create a folder: 首先,您需要创建一个文件夹:

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

[library addAssetsGroupAlbumWithName:folderName 
                              resultBlock:^(ALAssetsGroup *group) 
{
         NSLog(@"Added folder:%@", folderName);
}
                             failureBlock:^(NSError *error) 
{
         NSLog(@"Error adding folder");
}];

Then, find the folder: 然后,找到该文件夹​​:

__block ALAssetsGroup* folder;

[library enumerateGroupsWithTypes:ALAssetsGroupAlbum
                             usingBlock:^(ALAssetsGroup *group, BOOL *stop) 
{
      if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:folderName]) 
      {
          folder = group;
      }
}
                           failureBlock:^(NSError* error) 
{
    // Error handling.    
}];

And add your photo to it. 并将您的照片添加到它。

Save the Image to Asset Library, and put it into the album: 将图像保存到资源库,并将其放入相册:

[library writeImageToSavedPhotosAlbum:yourImage
                                  metadata:[info objectForKey:UIImagePickerControllerMediaMetadata]
                           completionBlock:^(NSURL* assetURL, NSError* error) 
{
     if (error.code == 0) 
     {
         // Get the asset
         [library assetForURL:assetURL
                  resultBlock:^(ALAsset *asset) 
         { 
              // Assign the photo to the album
              [folder addAsset:asset];
         }
                      failureBlock:^(NSError* error)
         {
              // Error handling.
         }];
     }
     else 
     {
         // Error handling.
     }
 }];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM