3

プログラムでスクリーンショットを撮る方法は?

4

2 に答える 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 に答える