iPhone:将图像保存到特定的相册

时间:2009-06-20 16:30:17

标签: iphone cocoa-touch

我正在处理的应用程序为用户操作图像,在用户完成后,他们可以保存该照片。我没有问题捕获屏幕并保存它(因为我想要一些与图像一起保存的标签)但是这个电话:

UIImageWriteToSavedPhotosAlbum([self getScreenAsImage],nil,nil,nil);

似乎只允许我保存到“已保存的照片”相册。理想情况下,我想创建一个以我正在处理的应用程序命名的专辑并将其保存在那里,以便它们全部存储在一起(例如像夏威夷或毕业日专辑在模拟器上)。那么在特定专辑中启动图像选择器也会很不错。有人知道怎么做吗?最重要的部分是能够将其保存在专辑中,能够在该专辑中启动选择器是次要的。

3 个答案:

答案 0 :(得分:2)

有一种方法可以做到,苹果公司还没有简单。

有一个自定义类别可以将功能添加到ALAssetsLibrary。

可以找到该类别的

Git 回购here

如果您使用的是Cocoapods,可以使用

获取
pod 'ALAssetsLibrary-CustomPhotoAlbum'

您需要实例化ALAssetsLibrary对象并调用下面的方法

- (void)saveImage:(UIImage *)image
      toAlbum:(NSString *)albumName
   completion:(ALAssetsLibraryWriteImageCompletionBlock)completion
      failure:(ALAssetsLibraryAccessFailureBlock)failure

如下所示

导入:

#import "ALAssetsLibrary+CustomPhotoAlbum.h" //Source Included (Git)

#import <ALAssetsLibrary+CustomPhotoAlbum.h> //Cocoapods

呼叫:

ALAssetsLibrary *assetsLib = [[ALAssetsLibrary alloc] init];
[assetsLib saveImage:imageToSave
                      toAlbum:@"AlbumName"
                   completion:completionBlock
                      failure:failureBlock];

答案 1 :(得分:0)

您可以使用ALAssetsLibrary执行此操作:

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

[library saveImage:image toAlbum:@"Midhun" withCompletionBlock:^(NSError *error) {
        if (error!=nil) {
            NSLog(@"Error: %@", [error description]);
        }
    }];

也请查看本教程:Custom Photo Album

答案 2 :(得分:-1)

据我所知,Apple尚未公开SDK以实现此目的。在审查了UIKit功能参考之后,我的恐惧似乎得到了证实。