2010-05-21 95 views
12

我注意到电脑显示器的亮度在不同电脑之间差别很大。如何使用JavaScript来衡量用户监控的亮度是多少?

因此,这大大改变了网页的外观。

有没有一种方法可以使用JavaScript来自动检测用户监视的亮度(或暗度)是多少,以便我可以相应地调整我的网页颜色?

UPDATE

请注意,我不希望用户手动参与。我希望这种检测是自动的,这样用户就不会意识到我会根据显示器的亮度/黑度自动动态更改调色板。

更新2

还请注意,我不谈论想要调整/校准终端用户实际监视器,而是,编程调整选择的网页上显示的颜色本身。也就是说,如果最终用户的显示比正常(亮度)更暗,我会改为显示使用较亮颜色的网页版本。

+1

对不起,但你想要什么是根本不可能的。对于任何程序,更不用说JavaScript。 – bobince 2010-05-21 15:11:41

+5

即使这是可能的,你不觉得用户已经调整了他们的亮度有一个原因吗? – 2010-05-21 15:30:51

+0

+1疯狂的问题,-1令人讨厌的更新 – 2010-05-21 16:02:45

回答

2

你不能这样做的JavaScript(我不认为你可以做任何其他语言,至少,没有一个硬件帮助)。

14

没有办法以编程方式执行此操作。你需要做的是写一些显示器校准测试,可能使用images like these的变体,向用户显示两个或更多的图像,并要求他们选择看起来更近的图像,每次他们做出选择时调整颜色,直到你感觉你所做的改变是准确的。

编辑:基本上我建议建一些像this

+0

你的建议需要手动用户参与,对吧?如果是这样,那不是我要找的。 – HankV 2010-05-21 15:12:21

+2

+1在Javascript中没有办法做到这一点,但我认为它变得可行。看看显示数据频道http://en.wikipedia.org/wiki/Display_Data_Channel – Shaji 2010-05-21 15:12:38

+0

@HankV:没有办法(当前)在没有使用用户参与的情况下在JavaScript中执行此操作。你有没有考虑过使用Java?即使这样,您可能需要用户参与或硬件来校准需要查看给定颜色的真实世界输出的显示器,并调整该颜色直到其正确。 I.E.如果0xFF0000显示为0xFF1111,则知道所有颜色必须变暗才能显示正确 – Josh 2010-05-21 15:17:20

1

否。作为一般规则,出于安全原因,JavaScript不允许查找有关计算机的大量信息。

4

大部分亮度/暗度设置是显示器的功能。计算机中的任何内容(更不用说运行在沙箱中的JavaScript)都能够访问这种信息 - 它主要是计算机和监视器之间的单向数据流。诸如房间亮度和显示器背后是否有光线等因素同样会影响屏幕的外观。

没有办法让每个人都以您看到您的网站的方式看到您的网站。越早意识到这一点,你的生活就会越容易。

+0

+1“没有办法让每个人看到你的网站,你越早意识到,你的生活越容易”!!! – Josh 2010-05-21 15:42:24

3

取而代之的是flash/silverlight应用程序呢?它可以使用用户的相机(如果他们有一个)。然后,您可以分析照相机中的照片/视频,以推断多少显示器光线反射出用户的脸部。

这将是一个非常非常脆弱和复杂的应用程序。

+1

-1这绝对不会有效! +1为智慧虽然:) – Skilldrick 2010-05-21 15:16:13

+1

要求用户举起镜子,以便相机捕捉屏幕,并校准......大声笑! – Josh 2010-05-21 15:18:31

+1

Silverlight 4允许访问本地API调用,但它要求用户授予提升的权限。即便如此,我不确定Silverlight是否可以访问必要的屏幕属性来进行这些类型的更改。 – Nick 2010-05-21 15:55:46

相关问题