Мой ЖК-монитор имеет 22 дюйма ViewSonic, разрешение экрана по умолчанию 96 DPI. Я понимаю, что 1 дюйм в компьютере не соответствует 1 дюйму в реальном. Разрешение моего ЖК-экрана составляет 1680 x 1050, поэтому диагональное измерение является корнем (1680 ^ 2 + 1050 ^ 2) = 1981 пикселя. Поэтому я думаю, что разрешение (dpi) системы должно быть 1981/22 = 90 DPI вместо 96 dpi. Почему операционная система Windows всегда устанавливает разрешение 96 точек на дюйм для всех ЖК-мониторов?
2 ответа
Примерно по порядку:
- Windows не знает, насколько велик ваш монитор. Он знает только разрешение в пикселях, а не физический размер.
- DPI это большое дело. Многие программы работают плохо, если не установлено значение по умолчанию. Главным образом потому, что это было 96 точек на дюйм в течение очень долгого времени. И отчасти потому, что при масштабировании изображений в соответствии с физическим размером вместо сетки пикселей получаются нечеткие изображения. Особенно плохо на изображениях с штриховой графикой.
- Это несколько относительная мера. Воспринимаемый размер изображений зависит от того, насколько близко пользователь сидит к монитору. Превратите 90 точек на дюйм в 96 точек на дюйм, отойдя на дюйм.
Независимо от разрешения рендеринг не будет происходить до тех пор, пока DPI мониторов не начнут приближаться к DPI принтеров. 600 точек на дюйм, долгий путь. GDI+ была первой попыткой, но она широко обсуждалась, WPF воспринимается всерьез, но получает много шума за нечеткий текст. В основном решено в версии 4, кстати.
96dpi - это просто число, которое по весу истории соответствует исходному разрешению монитора. Значения dpi никогда не были более чем грубым приближением к истинному физическому значению. Фактически, вы можете менять местами мониторы, и значение dpi не изменяется, оно просто не связано с монитором.
Современные панели имеют более высокую плотность пикселей, например, последние iPhone. В какой-то момент в будущем для компьютерных панелей будет гораздо более высокое значение dpi, чем 96. Windows Vista проложила путь к этому, позволив приложениям заявить, что они поддерживают технологию с высоким разрешением. Но изменения происходят медленно, потому что большое количество программного обеспечения не поддерживает высокое разрешение.
Я не удивлюсь, если 96dpi всегда будет означать родное разрешение. Так как Windows представляет масштабирование шрифта в процентах относительно собственного, это не повлияет на пользователя. Большая проблема, которая существует сегодня, заключается в том, как узнать абсолютные размеры объектов, которые вы рисуете на экране. На самом деле, я считаю, что пиксели, как правило, даже не квадратные, так что это действительно для всех.