为什么72 dpi图像在96 dpi屏幕中显得更大

时间:2014-08-26 08:04:46

标签: wpf image resolution dpi dpi-aware

  1. 我将屏幕设置为72 DPI并设计了一个100x100的小png图像 @ 72 DPI。这意味着72像素代表1英寸。
  2. 现在我将屏幕更改为120 DPI并设计相同 带有100x100 @ 120 DPI的图形png图像。这意味着120像素代表1英寸。
  3. 我再次将屏幕更改为96 DPI。这意味着96像素代表1英寸。 然后创建了一个WPF应用程序并添加了两个图像(步骤1和步骤2) - 我已将拉伸模式设置为无
  4. 不确定我是否理解了这个概念, 我预计72 dpi图像在96 dpi时看起来更小,因为如果72像素代表该图像的1英寸,那么在新配置中96像素代表1英寸。因此我预计72 dpi图像看起来更小。但事实并非如此。事实上,只是他相反。 72 dpi图像看起来更大@ 96 dpi。为什么?在图像方面,WPF总是默认为96 dpi吗?

    enter image description here

    更新 为什么即使在120 dpi(设置系统dpi为120)时,只有96 dpi的图像完全适合200x200的盒子? enter image description here

2 个答案:

答案 0 :(得分:2)

您正在对WPF图形单元的设备无关性质做出一些奇怪的假设。

无论屏幕设置如何,wpf世界中与设备无关的像素值为1/96英寸。这就是为什么只有96 dpi的实验是正确的。

其次,您的显示器本机dpi有影响

  

第二个比例因子,即“DPI设置”,我们将会有所不同   我们的测试。 WPF不会独立知道您的显示器的实际情况   物理DPI值是。相反,WPF使用当前的设置   第二个比例因子是“DPI设置”。如果“DPI设置”没有   匹配真正的物理DPI,然后WPF的“解决方案独立性”将   似乎打破了 - 虽然它确实没有。

     

http://www.wpflearningexperience.com/?p=41

答案 1 :(得分:1)

每英寸72点(DPI)的图像每英寸有72个点,而120 DPI的图像每英寸有120个点。因此,如果我们显示的是一英寸一英寸的图像,则72 DPI图像的每一面将具有72个点,而120 DPI图像的每个边将具有120个点。

因此,72 DPI图像中的每个点都大于120图像中的每个点,因此整个72 DPI图像大于120 DPI图像。

如需进一步阅读,您可以查看Mindfire Solutions网站上的DPI setting and resolution of WPF application页面。