Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

My LCD Monitor is 22 inch ViewSonic, windows resolution screen is default 96 DPI. I realize that 1 inch in computer does not fit to 1 inch in real. My LCD Screen Resolution is 1680 x 1050, so the diagonal measurement is root of (1680^2 + 1050^2) = 1981 pixel. So I think the resolution (dpi) of system should be 1981 / 22 = 90 DPI instead of 96 dpi. Why windows OS always set resolution 96 dpi for all LCD monitor?

share|improve this question
    
you do assume that it is 22" exactly between two oposite pixels on the screen, this is probably not true. Also the diagonal dpi is a rather odd thing to even messure, there are not 1981 pixels in an exact diagonal row on the screen. –  Joakim Elofsson Aug 22 '11 at 16:39
add comment

migrated from stackoverflow.com Aug 22 '11 at 15:38

This question came from our site for professional and enthusiast programmers.

2 Answers

up vote 7 down vote accepted

Roughly in order:

  • Windows doesn't know how big your monitor is. It only knows the resolution in pixels, not the physical size.
  • DPI is a big deal. Many programs perform poorly when it isn't set to the default. Mostly because it has been 96 dpi for a very long time. And partly because scaling images to fit the physical size instead of the pixel grid produces fuzzy pictures. Especially bad on images with line art.
  • It is a somewhat relative measure. The perceived size of images depends on how close the user sits to the monitor. Turn 90 dpi into 96 dpi by moving an inch away.

True resolution independent rendering won't happen until the DPI of monitors start to approach the DPI of printers. 600 dots per inch, there's a long way to go. GDI+ was a first attempt but was widely panned, WPF is getting taken serious but got a lot of flak for fuzzy text. Largely solved in version 4 btw.

share|improve this answer
1  
Almost all hardware has support for the "Display Data Channel", so generally the model number and physical size of the monitor is known to the OS. –  Ben Voigt Aug 22 '11 at 16:08
add comment

96dpi is just a number that, through weight of history, equates to the native resolution of a monitor. The dpi values has never been more than a rough approximation to the true physical value. In fact, you can swap monitors and the dpi value is not changed, it is simply not related to the monitor.

Modern panels have higher pixel density, e.g. recent iPhones. At some point in the future it will be common for computer panels to have much higher dpi than 96. Windows Vista paved the way for this by allowing apps to declare themselves to be high-dpi aware. But the change is slow to arrive because so much software does not support high dpi.

I would not be surprised if 96dpi always was taken to mean the native resolution. Since Windows presents font scaling in terms of a percentage relative to native, this would not impact on the user. The big problem, and one that exists today, is how to know absolute sizes of objects you paint on the screen. In fact, I believe that pixels are typically not even square so it really is a free-for-all.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.