Расхождения в разрешении экрана Java Toolkit

Я использую java, чтобы получить размеры и разрешение моего экрана. Когда я запускаю следующий код, я получаю вывод ниже.

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 (точек на дюйм). Я понимаю, что если у меня есть изображение шириной 600 пикселей, то на моем экране оно будет 5 дюймов. Когда я измеряю, это на самом деле 4 дюйма в ширину. Указав мне, что это должно быть 150 dpi.

Мой монитор имеет диагональ 15,6 дюйма, и я измеряю его ширину 13,6 дюйма и высоту чуть более 7,6 дюйма. Теперь ширина моего экрана, по-видимому, составляет 1920 пикселей в ширину, что составляет около 141 пикселя на дюйм. Точно так же вычисляется 1080/7,6. примерно до 141 пикселя на дюйм.

На этой веб-странице отображается изображение размером 600x600 пикселей. Я измеряю его на своем экране как 4,25 дюйма, что соответствует 141 пикселю.

Почему getScreenResolution возвращает 120?

Пожалуйста, дайте мне знать, если я ошибаюсь в чем-либо из этого.


person ajon    schedule 11.03.2013    source источник
comment
getScreenResolution нельзя доверять, потому что это что-то среднее между ОС, драйвером и пользовательской калибровкой. Что бы вы ни делали, этому нельзя доверять. Проверьте следующие ссылки: stackoverflow.com/questions/6544510/ stackoverflow.com/questions/4707756/   -  person Alexi Akl    schedule 11.03.2013


Ответы (1)


Toolkit.getDefaultToolkit().getScreenResolution() пытается получить разрешение, но в зависимости от точности драйверов и прочего (вроде того, что не все соединения между видеокартой и монитором не способны дать обратную связь о размерах), возвращаемый размер не может быть полностью засунут.

person Ferrybig    schedule 31.03.2013