我的 LCD 显示器是 22 英寸 ViewSonic,Windows 分辨率屏幕默认为 96 DPI。我意识到计算机中的 1 英寸并不适合现实中的 1 英寸。我的 LCD 屏幕分辨率为 1680 x 1050,因此对角线测量值为 (1680^2 + 1050^2) 的根 = 1981 像素。所以我认为系统的分辨率 (dpi) 应该是 1981 / 22 = 90 DPI,而不是 96 dpi。为什么 Windows 操作系统总是将所有 LCD 显示器的分辨率设置为 96 dpi?
答案1
大致顺序如下:
- Windows 不知道您的显示器有多大。它只知道像素的分辨率,而不是物理尺寸。
- DPI 很重要。许多程序在未将其设置为默认值时性能不佳。主要是因为很长时间以来它都是 96 dpi。部分原因是缩放图像以适应物理尺寸而不是像素网格会产生模糊的图片。对于带有线条图的图像尤其糟糕。
- 这是一种相对测量方法。图像的感知大小取决于用户与显示器的距离。移动一英寸即可将 90 dpi 变为 96 dpi。
真正的分辨率独立渲染只有在显示器的 DPI 开始接近打印机的 DPI 时才会实现。每英寸 600 点,还有很长的路要走。GDI+ 是第一次尝试,但遭到了广泛的批评,WPF 也受到了重视,但因模糊文本而受到了很多批评。顺便说一句,版本 4 中已基本解决该问题。
答案2
96dpi 只是一个数字,从历史的角度来看,它等同于本国的显示器的分辨率。dpi 值始终只是真实物理值的粗略近似值。事实上,您可以更换显示器,dpi 值不会改变,它与显示器无关。
现代面板的像素密度更高,例如最近的 iPhone。在未来的某个时候,计算机面板的 dpi 远高于 96 将会很常见。Windows Vista 通过允许应用程序声明自己支持高 dpi 为实现这一目标铺平了道路。但这种变化来得比较慢,因为很多软件都不支持高 dpi。
如果 96dpi 总是被理解为原始分辨率,我不会感到惊讶。由于 Windows 以相对于原始分辨率的百分比来表示字体缩放,因此这不会对用户产生影响。最大的问题(也是目前存在的一个问题)是如何知道您在屏幕上绘制的对象的绝对大小。事实上,我相信像素通常甚至不是正方形,所以这真的是一场混战。