私が理解しているところから、ピクセルへの関係点は画面の解像度に依存します。だから私はどのようにCで実行時にそれを計算することができます#?(C#)画面のポイントとピクセルの関係を取得する方法は?
おかげ
私が理解しているところから、ピクセルへの関係点は画面の解像度に依存します。だから私はどのようにCで実行時にそれを計算することができます#?(C#)画面のポイントとピクセルの関係を取得する方法は?
おかげ
これは、すべての画面対象にされています。私のマシン上で
int bpp = System.Windows.Forms.Screen.PrimaryScreen.BitsPerPixel;
int wid = Screen.PrimaryScreen.WorkingArea.Width;
int ht = Screen.PrimaryScreen.WorkingArea.Height;
それは与える:
bpp=32
width=1280
height=740
をあなたがのDPIを取得しようとしている場合画面は少しトリッキーです。実際のGraphicsオブジェクトを作成してそれをクエリする必要があります。例えば
、メインフォームのLoadイベントに:もちろん
using(Graphics g = CreateGraphics())
{
_dpiX = g.DpiX;
_dpiY = g.DpiY; // In practice usually == dpiX
_points = _dpiX/72.0f; // There are 72 points per inch
}
ほとんどのモニタは、実際のDPI偽る、常に返す72または96、または実際にした場合、大きなフォントが120を有効にしているとき物理的なインチを画面にマッピングしたいのですが、実際にユーザーの助けを借りてキャリブレーションする必要があります。測定するラインを1インチに選ぶようにします。
私は '_points'に至りました。今、 '_points'を' pixels'にどのように関連づけていますか? – jp2code
Screenオブジェクトを操作する場合、複数のモニタで作業しているユーザがいることに注意してください。アプリケーションが現時点で表示されている画面を返す関数があります。 – Alexander
確かに@アレクサンダー。それを指してくれてありがとう。 – TheVillageIdiot
作業領域はどのようにDPI、したがってポイントに変換されますか? –