Recientemente noté que mi cursor era más blanco que el fondo blanco (0xFFFFFF puro). Originalmente pensé que era una ilusión óptica ya que las capturas de pantalla mostraban que tanto el fondo como el cursor estaban en 0xFFFFFF. Luego tomé una foto del cursor y muestra claramente una diferencia de brillo:
Le puse un filtro de mosaico a la imagen para ver mejor el brillo promedio:
El interior de la flecha es de aproximadamente 191 grises (0xBF) y el fondo es de aproximadamente 177 grises (0xB1), lo que significa que el blanco del cursor es aproximadamente un 8% más brillante que el blanco puro del fondo.
¿Qué hardware hace esto y cómo? ¿La información de color se transmite con más de 8 bits por canal?
La computadora es Windows XP con una tarjeta gráfica NVIDEA GeForce 8500 GT conectada a un televisor Samsung 5100 mediante un cable HDMI.
Otra foto:
Un cursor de hardware, una captura de pantalla del cursor de hardware y un cuadrado de 16x16 de cada valor de escala de grises de 0 a 0xFF en bloques de 2x2.
Igual que la imagen anterior pero con un filtro de mosaico aplicado. Debería ser obvio cuál es el cursor real y cuál es la captura de pantalla del cursor en la foto. El brillo esta vez es 185 y 170, todavía alrededor del 8% de diferencia. Usando un selector de color, el color que es 170 en la foto es 0xFFFFFF en la pantalla. No puedo usar el selector de color en el cursor porque muestra el color directamente debajo del cursor.
Respuesta1
Como se menciona en la respuesta de Psychogeek, este es un problema con la configuración del perfil de color por parte del sistema operativo.
Los perfiles de color pueden ser aplicados por la aplicación, el sistema operativo, la tarjeta de video y el hardware de la pantalla.
Para los perfiles de color del sistema operativo en Windows, cuando se envía a la tarjeta de video, el perfil de color se aplica de manera diferente al cursor que a la imagen de la pantalla, lo que puede dar como resultado colores diferentes si el perfil de color cambia el punto blanco. En su caso, el cursor se envía como blanco verdadero, mientras que la imagen debajo tiene un perfil de color aplicado, cambiando el punto blanco a un nivel inferior.
El cursor se envía a la tarjeta de video por separado del resto de los datos de la pantalla y la tarjeta de video lo mezcla en una etapa posterior durante la renderización, antes de enviarse a la pantalla.
En un nivel simplificado:
[Cursor Draw] -- -- -- -- -- -- --
˅
[Windowing] --> [OS Profile] --> [Video Driver] --> [Video Card] --> [Hardware Profile] --> ...
Una captura de pantalla no aplica el perfil de color del sistema operativo a los datos de "toma", ya que se capturan en la etapa de creación de ventanas. Generalmente, la captura de pantalla no mostrará el cursor, porque captura incluso antes de que se aplique el perfil del sistema operativo. Sin embargo, ciertas herramientas (que supongo que usaste) para capturar la pantalla mezclarán el cursor sobre la imagen de la misma manera que lo hace la tarjeta de video. Dado que los niveles de blanco del cursor y del fondo son ambos del 100%, la captura de pantalla tiene el mismo nivel de blanco para ambos.
El comportamiento normal que está viendo se puede solucionar usando un monitor o tarjeta de video con una LUT de hardware para la calibración del color, o forzando que el cursor se dibuje en un punto de renderizado diferente, vea estoFoto.SE pregunta. También puedes editar la imagen del cursor y cambiar el nivel de blanco si te molesta. Sin embargo, creo que hace que el cursor se note más en la pantalla.
Respuesta2
Esta respuesta comienza con un análisis de por qué las cosas no son 1:1 con lo digital y termina con posibles formas de cambiar las cosas según su pregunta real.
- Toma una foto con tu cámara, se procesan todos los datos del sensor.
- Luego es comprimido hasta morir.
- Luego se mueve 1:1 a su computadora.
- Donde se muestra siendo ajustado por cualquier perfil de color del sistema operativo.
- Donde está dibujado digitalmente en una tarjeta de video que no solo puede ser ajustada por el usuario sino que también puede tener algunos trucos de color propios.
- Enviado al monitor 1:1.
- Donde puede ser atacado por completo durante el procesamiento, antes de llegar a un panel de visualización.
- El panel de visualización en sí no puede representar todos sus aspectos.
- Los colores de la retroiluminación varían en grandes porcentajes según el espectro de colores que emite la retroiluminación.
En este caso, el cursor es (probablemente) un elemento renderizado por hardware que está superpuesto en el hardware de la tarjeta de video. Lo primero que hay que examinar o intentar ajustar para cambiarlo es el perfil del monitor o los perfiles de color aplicados por el sistema operativo. Los perfiles de color se encuentran en el Panel de control, Todos los elementos del panel de control, Gestión del color. Allí encontrará perfiles de color que cambian el color antes de que llegue al monitor.
Los perfiles se pueden desactivar, para que puedas observar el efecto que tiene.
Ajustes en el software de la tarjeta de video. El escritorio, el 3D y el dibujo directo de video son todos controlables, incluso si estas cosas no se ajustaron en el software de la tarjeta de video, podría ser que al tenerlo todo configurado en 0 0 0 todavía exista algo de procesamiento. Podrías intentar usarlo para que coincida con la superposición del cursor, si hubiera alguna razón real para molestarte con ello.
La tarjeta de video se superpone al cursor renderizado por hardware y no usa los mismos parámetros para eso que el resto del fondo, y así es como funciona.
--basado en la imagen de control, nada del resto se aplica a esta pregunta específica--
Otra posibilidad es la configuración del monitor, aunque es menos probable. Los elementos de contraste y color automáticos en monitores y televisores pueden equilibrar grandes áreas brillantes u oscuras y, a menudo, provocan cambios no deseados. Los ajustes automáticos de color y nivelación en los monitores no siempre son ajustables y usan muchos nombres lindos diferentes para las acciones que realizan.
Los perfiles en monitores como juegos, películas, escritorio o cualquier nombre que usen para los perfiles establecen configuraciones específicas de color, contraste y brillo que consideran útiles para el perfil seleccionado y, nuevamente, pueden haber cambios no deseados incluso para las selecciones de perfil adecuadas.
Los algoritmos de nitidez en la cámara, no probablemente en la tarjeta de visualización de video, pero sí en el monitor, pueden crear una matriz de resaltado alrededor de áreas que aumentan los contrastes originales o (por supuesto) los reducen. En esta pregunta, es menos probable porque el blanco se expande más allá de los píxeles a los que se aplicaría una matriz de nitidez, a menos que se trate de 2 procesamientos diferentes.
La lista se hace aún más larga cuando en realidad no se requiere que el software tenga fondos blancos, sino que se pueden ajustar. El sistema operativo y los programas pueden tener un fondo que no sea blanco, pero ya sabes que no es así, en esta pregunta si elegiste un color de fondo, en el escritorio o programa original.
La selección de color en el escritorio le muestra el color del píxel (o píxeles) que existen allí, proporcionando al usuario información sobre lo que muestra el programa. La imagen en color aparece antes de que cualquier perfil de color ajuste la salida. Por eso, elegir el color es una excelente manera de descubrir el color real. Luego vuelve a pasar por el procesamiento.
Existen programas que harán una captura de pantalla con el cursor superpuesto. a partir de eso, una persona podría elegir el color de las cosas, pero nuevamente el cursor puede dibujarse usando un método diferente y procesarse de la misma manera que el resto. Entonces, si bien es posible realizar una captura digital de software de la pantalla e incluir el cursor, puede cambiar lo que realmente se ve aquí.