3

rMBP と 1000x1000 ピクセルの画像があるとします。

「Retina に最適」モードで MBP を実行しているときに画面に画像を 1:1 で表示すると、実際の Retina ディスプレイ ピクセルでは 1:1 で表示されます (つまり、500x500 画像と同じ画面領域を占有します)。 1440x900 の画面で)。

ただし、「スケーリングされた」解像度モードの 1 つ (1680x1050 など) に切り替えると、システムは画像を 1:1 で表示しなくなり、縮小します (1680x1050 画面上の 500x500 画像と同じ画面領域を占有します)。 )。

使用中のシステム解像度に関係なく、画像を Retina ディスプレイに 1:1 で表示し続ける方法が欲しいです。適切な「スケーリングされた」サイズを計算し、縮小したときに 1:1 のマッピングに対応するように画像を拡大できることを認識していますが、これにより品質が著しく低下します。

「スケーリングされた」解像度でMBPを実行する場合、Appleは画面上のピクセルを直接制御する方法を提供していません(画面の一部だけのスケーリングをバイパスします)?

4

2 に答える 2

1

いいえ。ディスプレイのスケーリングは GPU 内の非常に低いレベルで発生し、ディスプレイ全体に影響します。画面の一部をバイパスする方法はありません。

通常のラップトップのディスプレイの解像度を、たとえば 800x600 に設定した場合、LCD のネイティブ解像度で画像を表示したり、LCD の側面にある黒いピラーボックス内にコンテンツをレンダリングしたりする方法はありません。ディスプレイ。すべての意図と目的のために、LCDはその解像度に設定されている間800x600 です。実際には (たとえば) 1440x900 のディスプレイであるという事実は、一時的に忘れられています。

同じ原理が MacBook Pro Retina ディスプレイにも当てはまります。スケーリングの性質はもう少し複雑ですが、スケーリングを適用すると、ディスプレイの「元の」解像度は依然として忘れられ、直接レンダリングする方法はありません。

于 2012-08-10T06:16:57.037 に答える
0

ピクセルを直接アドレス指定するための API は次のとおりです。

https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/CapturingScreenContents/CapturingScreenContents.html#//apple_ref/doc/uid/TP40012302-CH10-SW1

于 2014-12-29T08:00:53.903 に答える