私は画面の大きさと解像度を取得するためにjavaを使用しています。次のコードを実行すると、以下の出力が得られます。Java Toolkit画面解像度descrepensies
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension dim = toolkit.getScreenSize();
System.out.println("Width of Screen Size is "+dim.width+" pixels");
System.out.println("Height of Screen Size is "+dim.height+" pixels");
int resolution =Toolkit.getDefaultToolkit().getScreenResolution();
System.out.println(resolution);
出力:
Width of Screen Size is 1920 pixels
Height of Screen Size is 1080 pixels
120
今のJavadocはgetScreenResolutionは、DPI(インチあたりのドット数)の解像度を返すと言っています。私はそれが私の画面上に5インチになる600pxs幅の画像を持っている場合、それを意味します。私が測定すると、実際には4インチ幅です。それが150 dpiであるべきことを私に示します。
私のモニターは15.6インチのモニターで、幅は13.6インチ、長さは7.6インチです。私の画面の幅は明らかに1920ピクセルで、1インチあたり約141ピクセルになります。 1080/7.6は1インチあたり約141ピクセルと計算されます
This web pageは600x600pxの画像を表示します。私は画面上でそれを141ピクセルに計算する4.25 "と測定します。
なぜgetScreenResolutionは120を返すのですか?
私はこれについて間違っている場合はお知らせください。
getScreenResolutionは、OS、ドライバ、およびユーザー較正の間にあるものであるため、信頼できません。あなたが何をしても、それは信頼できるものではありません。次のリンクを確認してください: http://stackoverflow.com/questions/6544510/how-to-get-the-screen-dpi-in-java http://stackoverflow.com/questions/4707756/how-to-正しく検出されたdpiのディスプレイ付きJava –