2013年1月28日月曜日

UIImageをフォトライブラリに保存する

UIImageをフォトライブラリに保存する方法をメモで。

UIImageを保存する

画像の保存はUIImageWriteToSavedPhotosAlbumメソッドを使用します。

以下、簡単な例です。

//保存したい画像
UIImage *_saveImage = [UIImage imageNamed:@"image.png"];

//画像を保存する
-(void)saveImage
{
    UIImageWriteToSavedPhotosAlbum(_saveImage, self, @selector(savingImageIsFinished:didFinishSavingWithError:contextInfo:), nil);
}

// 完了を知らせる
- (void) savingImageIsFinished:(UIImage *)_image didFinishSavingWithError:(NSError *)_error contextInfo:(void *)_contextInfo
{
    NSLog(@"ここでインジケータでもだそうか!");

    if(_error){//エラーのとき
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"エラー"
                message:@"画像の保存に失敗しました。"
                delegate:nil
                cancelButtonTitle:nil
                otherButtonTitles:@"OK", nil
        ];

        [alert show];
        [alert release];

    }else{//保存できたとき
        return;
    }
}

画像の保存は非同期処理で行われるため、UIImageWriteToSavedPhotosAlbumメソッドを呼び出してすぐには画像は保存されません。
そこで、UIImageWriteToSavedPhotosAlbumの第三引数に保存完了を知らせるメソッドを指定してあげます。

保存完了を知らせるメソッドには、コメントにも書きましたが、インジケーターで「画像の保存中...」みたいなのを出せばいいのかなと思います。

参考記事

画像(UIImage)をカメラロールに保存する - ktyr report
画像をライブラリに保存するメソッドUIImageWriteToSavedPhotosAlbumの注意事項 - mthr Blog+

関連記事

イメージの取得と保存 - マルタケエビス

0 件のコメント:

コメントを投稿