2

メインディスプレイの一部を新しいウィンドウにミラーリングできるプログラムを作成したいと思います。理想的には、この新しいウィンドウを外部モニターに表示できます。私は、PC(多機能ディスプレイエクストラクタ)でこれを行うflightsimのこの有用性を見てきました。

プログラムのスクリーンショットについては、ここをクリックしてください(MFD Extractor)

これはライブウィンドウになります。静的なグラフィックだけでなく、常に更新されるビデオ表示。

私はアイデアを求めて拡大鏡やvncクライアントを見てきましたが、最初から何かを書く必要があると思います。osxプログラミングについて読んでみましたが、ディスプレイにアクセスするにはどこから始めればよいですか?どういうわけか、特定のプログラムからグラフィックを抽出する必要があります。最終出力段階(ディスプレイに送信される個々のピクセル)の近くに行くのが最善ですか、それともウィンドウ管理段階の近くに行くのが最善ですか。

任意のアイデアやポインタをいただければ幸いです。どこかから始める必要があります。

よろしく、

4

1 に答える 1

0

これを行うにはいくつかの方法があります。

  1. Quartz Display Servicesを使用すると、画面のビデオ メモリにアクセスできます。
  2. Quartz Window Services (別名 CGWindow) を使用すると、ウィンドウの下にあるすべてのもののイメージを作成できます。フレームが画面全体を占める、ボーダーレス透明な空の高レベルウィンドウを作成すると、その下のすべてがその画面上のすべてになります。(もちろん、画面の一部をコピーするために小さなウィンドウを作成することもできます。)
  3. 私が完全には理解できなかった OpenGL を使用してそれを行う方法もあります。この手法は、 OpenGLScreenSnapshotOpenGLCaptureToMovieの 2 つのコード サンプルで示されています。ただし、CGWindow によって多かれ少なかれ廃止されています。

それらのそれぞれは、ファイルなどに表示または書き込むことができる画像を取得します。

画像を表示するには、NSImageViewまたはIKImageViewを使用します。拡大したい場合は、IKImageView にzoomFactorプロパティがありますが、最近傍スケーリング (Pixie、DigitalColor Meter、xScope など) が必要な場合は、そのためのカスタム ビューを作成する必要があると思います (ただし、それでさえ'それほど難しいことではありません)。

于 2010-05-01T23:35:42.130 に答える