2012-07-25 139 views
1

我有一个戴尔笔记本纬度5420关于显示器的物理尺寸,屏幕分辨率,DPI

内置显示器具有12.20英寸的宽度和 6.69 6,86英寸的高度。

操作系统是Windows7。屏幕分辨率设置为1600×900(首选分辨率)。

此外,Windows7配置了100%的“设置自定义文本大小(DPI)”(9点Segoe UI,每英寸96像素)。我认为这意味着windows7认为我的显示器1英寸使用96像素。

如果我将1600像素除以12.20英寸(或900除以6,86),则结果为131,1。

系统的预期DPI应该是多少?水平的?垂直的?鉴于这种配置,正方形在我的屏幕上会被看作是一个矩形?我错过了什么吗?

原始问题现在没有意义。分辨率和物理尺寸现在采用相同的16:9格式。

现在它让我感到困惑的问题是,现实中的屏幕似乎每英寸有131像素左右,但操作系统认为它有96像素英寸。如果我告诉一个程序写一条1英寸的线会在屏幕上打印多少个像素? 96或131?如果我告诉一个程序写13​​1个像素,并且我在屏幕上放置了一个尺子,我会测量什么?

编辑理由:对不起。我使用标尺重新检查了这些措施,并且我在垂直测量中做了一个错误。

回答

3

GetDeviceCaps旨在返回此信息(HORZSIZE/VERTSIZE,LOGPIXELSX/LOGPIXELSY)。但是,

GetDeviceCaps报告显示驱动程序提供的信息。如果显示驱动程序拒绝报告任何信息,GetDeviceCaps将根据固定的计算结果计算信息。如果显示驱动程序报告无效信息,GetDeviceCaps将返回无效信息。此外,如果显示驱动程序拒绝报告信息,GetDeviceCaps可能会计算出错误的信息,因为它假定为固定DPI(96 DPI)或固定大小(取决于显示驱动程序所提供和未提供的信息)。 不幸的是,在Windows显示驱动模型(WDDM)(在Windows Vista中引入)中实现的显示驱动程序会导致GDI无法获取信息,因此GetDeviceCaps必须始终计算信息。

对于我的Windows 7笔记本电脑,HORZSIZEVERTSIZE是完全错误的。

2

96像素/英寸是虚拟的并且与实际屏幕尺寸无关。假设你有一个4000×3000像素的屏幕,LOGPIXELX仍然会返回96(使用标准设置)。请阅读this article以获得全面的解释。

顺便说一下,在我的电脑上HORZSIZE和VERTSIZE也完全错误。