2010-05-21 10 views
12

He notado que el brillo de los monitores de computadora varía drásticamente entre las computadoras.¿Cómo usar JavaScript para medir qué tan brillante es el monitor de un usuario?

Como tal, esto cambia mucho el aspecto de las páginas web.

¿Existe alguna forma de usar JavaScript para detectar automáticamente qué tan brillante (u oscuro) es el monitor de un usuario para que pueda ajustar los colores de mi página web en consecuencia?

ACTUALIZACIÓN

Tenga en cuenta que no quiero participación de los usuarios manual. Quiero que esta detección sea automática para que los usuarios no se den cuenta de que cambie dinámicamente la paleta de colores automáticamente en función del brillo/oscuridad de su monitor.

ACTUALIZACIÓN 2

También observe por favor que estoy no hablar sobre el deseo de ajustar/calibrar el monitor de los usuarios finales reales, pero en su lugar, ajustar mediante programación el color seleccionado para ser visualizado en la página web sí mismo. Es decir, si el usuario final tiene una pantalla más oscura que la normal (brillo), en su lugar mostraré una versión de mi página web que usa colores más brillantes.

+1

Lo siento, pero lo que "quieres" es simplemente imposible. Para cualquier programa, mucho menos JavaScript. – bobince

+5

Incluso si esto fuera posible, ¿no cree que el usuario ajustó su brillo por alguna razón? –

+0

+1 pregunta loca, -1 actualizaciones desagradables –

Respuesta

2

No puede hacer eso con javascript (y no creo que pueda hacer eso en ningún otro idioma, al menos, sin una pieza de hardware para ayudar).

14

No hay forma de hacerlo de forma programática. Lo que tendría que hacer es escribir algún tipo de prueba de calibración del monitor, posiblemente usando variaciones de images like these, mostrando al usuario dos o más imágenes y pidiéndole que elija la que se ve más cerca, ajustando los colores cada vez que elija, hasta siente que los cambios que ha realizado son precisos.

EDITAR: Básicamente sugiero construir algo así como this.

+0

Lo que usted recomienda requiere la participación manual del usuario, ¿no? Si es así, eso no es lo que estoy buscando. – HankV

+2

+1 No hay forma de hacerlo en Javascript, pero creo que es posible. Eche un vistazo al canal de datos de visualización http://en.wikipedia.org/wiki/ Display_Data_Channel – Shaji

+0

@HankV: no hay forma (actualmente) de hacer esto en JavaScript sin utilizar la participación del usuario. ¿Has considerado usar Java? Incluso entonces es probable que necesite la participación del usuario o el hardware para calibrar el monitor que necesita para ver cuál es la salida del mundo real de un color determinado, y ajustar ese color hasta que sea correcto. ES DECIR. si 0xFF0000 muestra como 0xFF1111, usted sabe que todos los colores deben estar oscurecidos para que parezcan correctos – Josh

1

No. Como regla general, JavaScript no puede descubrir mucho acerca de su computadora por razones de seguridad.

4

La mayoría de los ajustes de brillo/oscuridad son una función del monitor. Nada en la computadora (mucho menos JavaScript ejecutándose en una caja de arena) es capaz de acceder a este tipo de información, es principalmente un flujo de datos de una vía entre la computadora y el monitor. Factores como el brillo de la habitación y si hay luz detrás del monitor también influirán en la apariencia de la pantalla.

No hay forma de que todos vean su sitio web de la manera que lo ve. Cuanto antes te des cuenta de eso, más fácil será tu vida.

+0

+1 para "No hay forma de que todos vean tu sitio web como lo ves. ¡Cuanto antes te des cuenta de eso, más fácil será tu vida"! – Josh

3

¿Qué tal una aplicación flash/silverlight en su lugar? Puede usar la cámara del usuario (si tienen una). Luego, puede analizar las imágenes/videos de la cámara para hacer inferencias sobre la cantidad de luz del monitor que se refleja en la cara del usuario.

Sería una aplicación muy, muy frágil y complicada.

+1

-1 ¡No hay manera de que esto funcione alguna vez! +1 por ingenio aunque :) – Skilldrick

+1

Pídale al usuario que sostenga un espejo en la cámara para que la cámara capture la pantalla y calibre ... ¡jajaja! – Josh

+1

Silverlight 4 no permite el acceso a llamadas API locales, pero requiere que el usuario otorgue privilegios elevados. Incluso entonces, no estoy seguro de si Silverlight tendría acceso a las propiedades de pantalla necesarias para realizar ese tipo de cambios. – Nick

Cuestiones relacionadas