繁体   English   中英

Flex / actionscript - 屏幕DPI

[英]Flex / actionscript - Screen DPI

有没有办法获得屏幕dpi?


我已经尝试过Capabilities.screenDPI,但它已经坏了,它总是返回72。


有任何想法吗?

非常感谢。

我从来没有能够完全理解为什么会这样,但这实际上是正确的。 如果要获取逐个宽度的信息,可以使用Capabilities.screenXCapabilities.screenY

我相信你一定是在使用Mac。 72通常是Mac上的dpi; 在Win机器上,该值通常为96。

以下引用对我帮助很大。 这是关于dpi和屏幕分辨率的长篇文章, 网址http://www.scantips.com/no72dpi.html 帖子只与您的问题相关,但有关屏幕dpi如何工作的信息很有帮助。

您的Web浏览器报告您的屏幕大小当前设置为显示1440x900像素(屏幕的整个区域,而不仅仅是浏览器窗口)。 因此,上面的每个412x324像素图像将出现在412/1440 = 29%宽度和324/900 = 36%的全屏高度(在当前视频设置下)。 我可以轻松地承诺,即使在那里也是如此,但你可以自己在屏幕上查看它。 我希望这对你来说也很明显,因为它是视频系统的工作方式,你需要知道这一点。

更新:

经过一番研究 -

如您所知, screenDPI属性不会为您提供每英寸的实际像素数 - 您将获得与800x600相同的screenDPI值,与1440x900相同。 如果您已经知道屏幕的尺寸(以英寸为单位),那么您可以计算实际的ppi - 但是,当然,您无法从ActionScript获取该信息。 在IE中,你可以从JavaScript获得它,但这没有多大帮助。

所以,据我所知,没有办法做到这一点。 可能,您可以做一些疯狂的事情,比如使用AS捕捉应用程序的屏幕截图,并将其发送到具有屏幕分辨率信息的服务器,并让服务器分析它告诉您应用程序是多少英寸宽和高 - 和因为您知道应用程序的宽度和高度有多少像素,然后您可以计算每英寸的像素数。 但是,我不知道服务器应用程序将如何或如何实现这一目标。

希望有可能通过JavaScript获得这个。 我已经看过几篇关于将div的宽度/高度设置为1in然后查询offsetWidth / offsetHeight的帖子,但这并不比screenDPI更好。 有趣的是,即使我从screenDPI得到72,我从这个方法得到96(无论分辨率如何)。

据我所知,如果不知道屏幕的尺寸(以英寸为单位),就无法确定一英寸的实际像素 - 而且您无法从浏览器中获取该信息。

游民。

假设您有2个显示器,17“和19”,SAME分辨率为1280x1024(我正是这两个)。 这意味着反映像素大小(或精确地,适合一英寸的像素数)的实际DPI对于那两个而言将是不同的 - 具有相同分辨率的较小监视器将具有更大的DPI值。

这意味着没有办法从actionscript或javascript获得实际的DPI。 您可以获得以像素为单位的屏幕宽度(1280),但是您无法以英寸为单位获得实际的显示器尺寸,因此您无法计算它。

我认为Windows返回默认值72和mac 96,但遗憾的是它不能反映实际值。

这意味着没有办法,例如,在所有显示器上制作一个10英寸宽的正方形:

在Windows中,如果你已经正确安装了显示器驱动程序,也许你可以从显示器驱动程序获得DPI(我想这是你可以从ie获得的东西),但在我看来,没有办法让它在所有的浏览器上工作/平台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM