プログラムでスクリーンショットを撮る方法は?
7602 次
2 に答える
14
UIGraphicsBeginImageContext
この目的で使用できます。
例えば :
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);
[self.myView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData*theImageData = UIImageJPEGRepresentation(theImage, 1.0 ); //you can use PNG too
[theImageData writeToFile:@"example.jpeg" atomically:YES];
ここ
1.まず、画像コンテキストを取得します。myView
これは webview であると指定しました。必要なものは何でも指定できます。これにより、画面に表示される webview の画像が取得されます。
2 iを使用しUIGraphicsGetImageFromCurrentImageContext()
て、webview のスクリーンショットを画像に変換します。
3. iを使用しUIGraphicsEndImageContext()
て、コンテキストを終了します。
4.NSData
スクリーンショットを郵送する必要があったため、画像を に保存しています。送信または保存に使用する場合は、そのままにしておくNSData
のが良いオプションのようです。
編集:カメラロールに追加するには、次のように書く必要があります:
UIImageWriteToSavedPhotosAlbum(theImage,nil,NULL,NULL);
後UIGraphicsEndImageContext();
于 2012-04-13T12:41:29.067 に答える
1
この回答をご覧ください。網膜ディスプレイも処理します。
実際にプロセスを説明するために、
- 画像のコンテキストサイズ(おそらくスクリーンショットが必要なレイヤーサイズ)を選択します
- 作成したコンテキストでスクリーンショットを撮りたいレイヤーをレンダリングします
- コンテキストから画像を取得すれば完了です。
于 2012-04-13T12:37:21.303 に答える