I love iPhone, Android, Cocos2d-x
[iPhone] アプリからスクリーンショットを撮って写真ライブラリに保存する
お絵描き系のアプリを作成していて画像データを写真ライブラリに保存する方法を調べたのでメモ。
一番簡単な方法は
- メニューなどを消した状態にする
- スクリーンショットを撮る
- 保存する
メニューなどを消して保存したい画像データだけにするのはそれぞれのアプリによって違うので省略。ステータスバーも消さないとダメですね。ステータスバーを消す方法は昨日書いたエントリを参照。
スクリーンショットを撮るのは下記のコードで撮れます。
UIImage *image = [UIImage imageWithCGImage:UIGetScreenImage()];
UIImage データを保存するには下記の関数で保存できます。
void UIImageWriteToSavedPhotosAlbum(UIImage * image, id completionTarget, SEL completionSelector, void * contextInfo);
保存した後に何か処理したい場合、completionTarget にターゲット、completionSelector にアクションを指定します。特に処理しない場合は UIImage 以外は nil でも大丈夫です。
で、結果的に下記のコードでスクリーンショットを撮って、写真ライブラリに保存できます。
UIImageWriteToSavedPhotosAlbum([UIImage imageWithCGImage:UIGetScreenImage()], nil, nil, nil);
欠点は等倍の画像データにしか対応できないことです。
関連する投稿
コメントをどうぞ
Additional comments powered by BackType