3

次のようなものを使用してウィンドウをキャプチャすると...

CGImageRef imageRef = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, windowID, kCGWindowImageBoundsIgnoreFraming);

ウィンドウの境界が次のようなものだったとします...

kCGWindowBounds = {
    Height = 150;
    Width = 490;
    X = 395;
    Y = 174;
};

ウィンドウが Retina ディスプレイ上にある場合、kCGWindowBounds の高さは 300 または 150 と報告されますが、結果としてキャプチャされた画像は 300 になりますか?

前もって感謝します。Retina ディスプレイのないもののうちの 1 つは、よくわからず、開発者にも役立つと思います...

4

1 に答える 1

3

わかりました。Quartz-Debugを使用してhidpモードを有効にし、ウィンドウをhidpが有効になっている画面にドラッグして答えを見つけました。

答えは、網膜の有無に関係なく、ウィンドウの境界の高さ/幅は同じであるということです。ただし、網膜画面に表示すると、キャプチャされた画像は2倍になります。

私はそうなると思っていましたが、何の仮定もしたくありませんでした。

于 2013-02-15T00:12:54.177 に答える