2010-05-21 4 views
12

Ich habe festgestellt, dass die Helligkeit von Computermonitoren zwischen Computern drastisch variiert.Wie kann JavaScript verwendet werden, um zu messen, wie hell ein Benutzerbildschirm ist?

Als solche ändert dies das Aussehen von Webseiten stark.

Gibt es eine Möglichkeit, JavaScript zu verwenden, um automatisch zu erkennen, wie hell (oder dunkel) ein Benutzermonitor ist, damit ich die Farben meiner Webseite entsprechend anpassen kann?

UPDATE

Bitte beachten Sie, dass ich nicht will manuelle Benutzerbeteiligung. Ich möchte, dass diese Erkennung automatisch erfolgt, damit die Benutzer nicht erkennen, dass ich die Farbpalette basierend auf der Helligkeit/Dunkelheit ihres Monitors automatisch dynamisch ändere.

UPDATE 2

Bitte beachten Sie auch, dass ich nicht reden zu wollen, die Endanwendern tatsächlichen Monitor einstellen/kalibrieren, sondern stattdessen programmatisch die Farbe anpassen ausgewählt, um auf der Web-Seite angezeigt wird selbst. Das heißt, wenn der Endbenutzer eine dunklere Anzeige als normal hat (Helligkeit), wird stattdessen eine Version meiner Webseite angezeigt, die stattdessen hellere Farben verwendet.

+1

Sorry, aber was Sie wollen, ist einfach unmöglich. Für jedes Programm, geschweige denn JavaScript. – bobince

+5

Auch wenn das möglich war, glauben Sie nicht, dass der Benutzer seine Helligkeit aus einem bestimmten Grund angepasst hat? –

+0

+1 verrückte Frage, -1 anstößige Updates –

Antwort

2

Sie können das nicht mit Javascript (und ich glaube nicht, dass Sie das in einer anderen Sprache tun könnten, zumindest ohne ein Stück Hardware zu helfen).

14

Es gibt keine Möglichkeit, dies programmatisch zu tun. Was Sie tun müssten, ist eine Art Monitorkalibrierungstest zu schreiben, möglicherweise unter Verwendung von Variationen von images like these, die dem Benutzer zwei oder mehr Bilder zeigen und sie auffordern, denjenigen zu wählen, der näher schaut und die Farben bei jeder Wahl neu anpasst Sie fühlen, dass die Änderungen, die Sie vorgenommen haben, richtig sind.

EDIT: Im Grunde suggeriere ich, etwas wie this zu bauen.

+0

Was Sie empfehlen, erfordert manuelle Benutzereinbindung, oder? Wenn das so ist, suche ich nicht danach. – HankV

+2

+1 Es gibt keine Möglichkeit, es in Javascript zu tun, aber ich denke, es wird möglich. Werfen Sie einen Blick auf Display Data Channel http://en.wikipedia.org/wiki/Display_Data_Channel – Shaji

+0

@HankV: Es gibt keine Möglichkeit (derzeit) dies in JavaScript zu tun, ohne Benutzerbeteiligung zu verwenden. Haben Sie darüber nachgedacht, Java zu verwenden? Selbst dann werden Sie wahrscheinlich entweder Benutzerbeteiligung oder Hardware benötigen, um den Monitor zu kalibrieren, den Sie benötigen, um zu sehen, was die tatsächliche Ausgabe einer bestimmten Farbe ist, und diese Farbe anzupassen, bis sie korrekt ist. I.E. Wenn 0xFF0000 als 0xFF1111 angezeigt wird, wissen Sie, dass alle Farben abgedunkelt sein müssen, um korrekt zu erscheinen – Josh

1

Nein. In der Regel darf JavaScript aus Sicherheitsgründen nicht viel über Ihren Computer herausfinden.

4

Die meisten Einstellungen für Helligkeit/Dunkelheit sind eine Funktion des Monitors. Nichts auf dem Computer (geschweige denn JavaScript, das in einer Sandbox ausgeführt wird) kann auf diese Art von Information zugreifen - es handelt sich hauptsächlich um einen einseitigen Datenfluss zwischen Computer und Monitor. Faktoren wie die Helligkeit des Raumes und ob hinter dem Monitor Licht ist, werden das Aussehen des Bildschirms ebenso beeinflussen.

Es gibt keine Möglichkeit, dass jeder Ihre Website so sieht, wie Sie sie sehen. Je früher du das merkst, desto leichter wird dein Leben sein.

+0

+1 für "Es gibt keine Möglichkeit, dass jeder deine Website so sieht, wie du es siehst. Je schneller du das merkst, desto leichter wird dein Leben" !!! – Josh

3

Wie wäre es stattdessen mit einer Flash/Silverlight App? Es kann die Kamera des Benutzers benutzen (wenn sie eine haben). Sie können dann Bilder/Videos von der Kamera analysieren, um Rückschlüsse darauf zu ziehen, wie viel Monitorlicht vom Gesicht des Benutzers reflektiert wird.

Es wäre eine sehr sehr zerbrechliche und komplizierte App.

+1

-1 Es gibt absolut keine Möglichkeit, dass dies jemals funktionieren würde! +1 für Genialität obwohl :) – Skilldrick

+1

Bitten Sie den Benutzer, einen Spiegel an der Kamera zu halten, so dass die Kamera den Bildschirm erfasst und kalibriert ... lol! – Josh

+1

Silverlight 4 ermöglicht den Zugriff auf lokale API-Aufrufe, erfordert jedoch, dass der Benutzer erhöhte Berechtigungen erteilt. Selbst dann bin ich mir nicht sicher, ob Silverlight Zugriff auf die erforderlichen Bildschirmeigenschaften hätte, um diese Art von Änderungen vorzunehmen. – Nick