14

さまざまな倍率レベルで画像を検査するために使用できるアプリケーション用の画像「ルーペ」を作成しようとしていますが、ちょっとした道のりに遭遇しました。Quartz を使用してCGImageRef、アプリのウィンドウが表示されているディスプレイの選択した部分のスナップショットを作成しています。問題は、さまざまな OS X テクノロジのすべてで使用されている命名法が、私を本当に混乱させていることです。

私が使用している関数はCGDisplayCreateImageForRect(CGDirectDisplayID display, CGRect rect). ドキュメントには、CGRect rectパラメータが「イメージにコピーされるディスプレイの部分の、ディスプレイ スペースで指定された長方形」であると記載されています。問題は、コンソールに表示される出力が期待したものではないことです。私は非常に多くの異なる変換、変換、座標反転などを試しましたが、今では 100% 混乱しています。

だから、私の質問はこれに要約されると思います:スクリーンスペース==デバイススペース==ディスプレイスペースですか?ビューのフレーム(たまたまカスタムボーダレスウィンドウ)座標(左下の原点)を適切に変換するにはどうすればよいですか? ) ディスプレイの座標 (左上の原点) と一致させるには?

誰かが私を正し、正しい方向に向けることができれば、私は永遠に感謝します. ありがとう!

4

1 に答える 1