2012-02-28 4 views
0

사진 앨범에 저장이라는 저장 버튼이 있습니다. 버튼 상단에는 사용자가 사진 버튼의 실제 크기를 사진 앨범에 저장하기 위해 아래 버튼을 클릭 할 수있는 작은 UIImageView가 있습니다. 내 문제는 내가 저장 버튼을 클릭하면, 그것은 오류를 보여줍니다 : 이미지를 사진 앨범에 저장할 수 없습니다.이미지를 UIImageWriteToSavedPhotos 앨범을 사용하여 저장할 수 없습니다.

나는 제대로 한 것 같지만 내 경험이 너무 제한적이다.

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]; 
} 
+0

실제 오류는 무엇입니까? (예 : NSLog (@ "% @"오류);) 이미지에 didFinishSavingWithError : contextInfo : 메서드를 추가하십시오. – deanWombourne

+0

이미지를 사진 앨범에 저장할 수 없습니다. 성공적으로 실행할 수 있습니다 그냥 저장할 수 없습니다. 코드가 올바르지 않을 수 있습니다. – Amink

+0

아니요, 오류가 아닙니다. 경고 메시지에 입력 한 것입니다. 줄을 추가하면 어떻게됩니까? NSLog (@ "% @", error);'이미지에서 : didFinishSavingWithError : contextInfo : method - 콘솔에 오류 출력이 있어야합니다. 무엇인지 알 필요가 있습니다 .. – deanWombourne

답변

0

이 라인은 정말 정말 의심 보면 :

이 뭘 기대하고 무엇
NSString *saveMyPhoto=[NSHomeDirectory() stringByAppendingPathComponent:@"sample.png"]; 
... 
UIImage *saved = [UIImage imageWithContentsOfFile:saveMyPhoto]; 
... 
[imageData writeToFile:(NSString *)saved atomically:YES ]; 

? 이미지 경로를 가져 와서 다시 저장하지만 NSString에 UIImage를 캐스팅하고 마법 적으로 디스크의 유효한 경로로 바뀌기를 바랍니까?

질문하시는대로 이미지가 유효한 이미지입니까?

+0

그냥 사진 앨범에 성공적으로 저장하고 싶습니다. 그게 다야. 네, 내 이미지는 PNG 형식입니다. 내 코드에 대한 권장 사항은 무엇입니까? – Amink

1

그냥 UIImage 개체를 만들고 파일에서 이미지를로드하십시오. 그런 다음 UIIMageWriteToSavedPhotoAlbum 함수를 호출하고 UIImage 객체를 첫 번째 매개 변수로 전달한 다음 나머지는 모두 NIL이 될 수 있습니다. Apple SDK documentation.

관련 문제