0

我的问题真的很烦人。我正在创建拍摄照片并需要将它们保存到自定义画廊的应用程序。我找到了几个教程如何使用 AlAssetsLibrary 做到这一点,但有一个大问题......没有saveImage:toAlbum:withCompletionBlock:方法。我曾经addAssetsGroupAlbumWithName:resultBlock:failureBlock:创建自定义相册,但我无法将图像保存到这个画廊!我正在使用 iOS 6 iPhone 4。

有任何想法吗!?

4

3 回答 3

1

您在问题中提到的方法saveImage:toAlbum:withCompletionBlock不是ALAssetsLibrary的一部分。这个方法写在ALAssetLibary 的 category 中。您必须在类中导入类别才能使用该方法。

要了解有关目标 C 类别的更多信息,请查看开发人员参考

于 2013-07-18T08:56:00.303 回答
0

看这里:

http://www.touch-code-magazine.com/ios5-saving-photos-in-custom-photo-album-category-for-download/

这里有一个 Stackoverflow 线程:Save Photos to Custom Album in iPhones Photo Library

于 2013-07-18T08:56:09.677 回答
0

如果您使用的是 AssetsLibrary,则可以编写此代码

- (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    UIImagePickerController *imagePicker;

    if (buttonIndex < 2)    
    {           
        self.library = [[[ALAssetsLibrary alloc] init] autorelease];
        
        self.imageEditor = [[[DemoImageEditor alloc] initWithNibName:@"DemoImageEditor" bundle:nil] autorelease];
        
        self.imageEditor.doneCallback = ^(UIImage *editedImage, BOOL canceled){

            if(!canceled)
            {
                anotherImage = true;
                
                NSString *imageName;
               
                imageName =@"Abc.jpg";
                
                UIImageWriteToSavedPhotosAlbum(editedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);      

                editedImage = [self scaleImage:editedImage toSize:CGSizeMake(600,600)];

                 [[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(editedImage)forKey:@"image"];

}

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
    UIAlertView *alert;
    
        if (error)

        alert = [[UIAlertView alloc] initWithTitle:@"Error" 
                                           message:@"Unable to save image to Photo Album." 
                                          delegate:self cancelButtonTitle:@"Ok" 
                                 otherButtonTitles:nil];

    else 

        alert = [[UIAlertView alloc] initWithTitle:@"Success" 
                                           message:@"Image saved to Photo Album." 
                                          delegate:self cancelButtonTitle:@"Ok" 
                                 otherButtonTitles:nil];

    [alert release];
}

它会解决你的情况。

于 2013-07-18T08:57:15.883 回答