Изображение не может быть сохранено с помощью UIImageWriteToSavedPhotosAlbum в фотоальбом - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть кнопка сохранения под названием сохранить в фотоальбом. В верхней части кнопки находится небольшой UIImageView, где пользователь может нажать кнопку ниже, чтобы сохранить фактический размер фотографии в фотоальбом. Моя проблема в том, что когда я нажимаю кнопку «Сохранить», отображается сообщение об ошибке: не удается сохранить изображение в фотоальбом.

Я думаю, что сделал все правильно, но мой опыт слишком ограничен.

H файл:

#import <UIKit/UIKit.h>

@interface SecondViewController : UIViewController  {

    IBOutlet UIButton *btnReturn;
    IBOutlet UIButton *savePhoto;
    IBOutlet UIImage *saveImage;

}

@property (nonatomic, retain) IBOutlet UIButton *btnReturn;
@property (nonatomic, retain) IBOutlet UIButton *savePhoto;
@property (nonatomic, retain) IBOutlet UIImage *saveImage;

-(IBAction) saveToPhotoAlbum;

@end

Ниже мой код:

-(IBAction) saveToPhotoAlbum{

    NSString *saveMyPhoto=[NSHomeDirectory() stringByAppendingPathComponent:@"sample.png"];

    UIImage *saved=[UIImage imageWithContentsOfFile:saveMyPhoto]; 

    NSData *imageData = [NSData dataWithContentsOfFile:(NSString *)UIImagePNGRepresentation(saved)];
    [imageData writeToFile:(NSString *)saved atomically:YES ];

    UIImageWriteToSavedPhotosAlbum(saved, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
    }

- (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 show];
    [alert release];
}

Ответы [ 2 ]

1 голос
/ 23 октября 2012

Просто создайте объект UIImage и загрузите изображение из файла. Затем просто вызовите функцию UIIMageWriteToSavedPhotoAlbum и передайте объект UIImage в качестве первого параметра, а затем все остальные могут быть NIL. См. Документацию Apple SDK.

0 голосов
/ 28 февраля 2012

Эти строки выглядят действительно подозрительно:

NSString *saveMyPhoto=[NSHomeDirectory() stringByAppendingPathComponent:@"sample.png"];
...
UIImage *saved = [UIImage imageWithContentsOfFile:saveMyPhoto]; 
...
[imageData writeToFile:(NSString *)saved atomically:YES ];

Что вы ожидаете от этого? Вы получаете путь к изображению, загружаете его и затем сохраняете его снова, но вы навели UIImage на строку NSString и надеетесь, что он волшебным образом превратится в допустимый путь на диске?

Что касается вопроса, который вы задаете, уверены ли вы, что ваше изображение является действительным изображением?

...