半日を潰してしまったけど,調べてる最中に,アプリ内でUIViewのスクリーンショットを取るという他に転用できようなtipsを発見した.そのメモを以下に,ちなみにこのコードを一部書き換えてカメラのUIImagePickerControllerに対して行うと,真っ黒な画像が保存されるという,親切機能がOSに実装されている.意味わかんねーー
CGRect screenRef = [[UIScreen mainScreen] bounds];昔,UIGetScreenImage()なるメソッドで簡単に取得できたみたいだけど,今はこれはなぜかオミットされています.The 大人の事情.
UIGraphicsBeginImageContext(screenRef.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor blueColor] set];
CGContextFillRect(ctx, screenRef);
[self.view.layer renderInContext:ctx];
UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(screenImage, nil, nil, nil);
UIGraphicsEndImageContext();
続きのエントリです.
3 コメント:
過去記事へのコメントですみません。
スクリーンショットをアプリに組み込もうと思ってサンプルを使用させていただいたのですが、なぜかうまくいきません。
ツールバーを作って、そこにセーブボタンを付けスクリーンショットを撮ると、ツールバーのみがキャプチャされてしまいます。
なにか対処法はないのでしょうか?
self.view.layerがツールバーを指定しているのではないでしょか?
そうなんですね。
うすうす気付いてはいたのですが、どう指定すれば別のviewとなるのわかりませんでしたので…。
もしよろしければ、ツールバー以外(というよりも、私の場合はボタンをつけたviewの下に表示されているviewですね)を指定するための参考となるページやヒントなどをいただけないでしょうか?
何度もお手数をおかけしてしまいますが、よろしくお願いいます。
コメントを投稿