Recentemente, notei que meu cursor era mais branco que o fundo branco (0xFFFFFF puro). Originalmente, pensei que era uma ilusão de ótica, pois as capturas de tela mostravam que o fundo e o cursor estavam em 0xFFFFFF. Então tirei uma foto do cursor e ela mostra claramente uma diferença no brilho:
Coloquei um filtro de mosaico na imagem para ver melhor o brilho médio:
O interior da seta é cerca de 191 cinza (0xBF) e o fundo é cerca de 177 cinza (0xB1), o que significa que o branco do cursor é cerca de 8% mais brilhante que o branco puro do fundo.
Que hardware está fazendo isso e como? As informações de cores estão sendo transmitidas com mais de 8 bits por canal?
O computador é o Windows XP com uma placa de vídeo NVIDEA GeForce 8500 GT conectada a uma TV Samsung 5100 por meio de um cabo HDMI.
Outra foto:
Um cursor de hardware, uma captura de tela do cursor de hardware e um quadrado de 16x16 de cada valor da escala de cinza de 0 a 0xFF em blocos 2x2.
O mesmo que a imagem anterior, mas com um filtro de mosaico aplicado. Deveria ser óbvio qual é o cursor real e qual é a captura de tela do cursor na foto. O brilho desta vez é 185 e 170, ainda com cerca de 8% de diferença. Usando um seletor de cores, a cor que é 170 na foto é 0xFFFFFF na tela. Não consigo usar o seletor de cores no próprio cursor porque ele mostra a cor diretamente abaixo do cursor.
Respostas:
Conforme mencionado na resposta da Psychogeek, esse é um problema com a configuração do perfil de cores pelo sistema operacional.
Os perfis de cores podem ser aplicados pelo aplicativo, pelo sistema operacional, pela placa de vídeo e pelo hardware da tela.
Para perfis de cores do SO no Windows, quando enviado para a placa de vídeo, o perfil de cores é aplicado de maneira diferente ao cursor e à imagem na tela, o que pode resultar em cores diferentes se o perfil de cores alterar o ponto branco. No seu caso, o cursor é enviado como branco verdadeiro, enquanto a imagem abaixo tem um perfil de cor aplicado, alterando o ponto branco para um nível mais baixo.
O cursor é enviado para a placa de vídeo separadamente do restante dos dados da tela e é misturado pela placa de vídeo posteriormente durante a renderização, antes de ser enviado para a tela.
Em um nível simplificado:
Uma captura de tela não aplica o perfil de cores do SO aos dados da "captura", pois são capturados no estágio de janelas. Geralmente, a captura de tela não mostra o cursor, porque é capturada mesmo antes da aplicação do perfil do SO. No entanto, certas ferramentas (que suponho que você usou) para capturar a tela misturam o cursor sobre a imagem da mesma forma que a placa de vídeo. Como os níveis de branco do cursor e o fundo são ambos 100%, a captura de tela tem o mesmo nível de branco para ambos.
O comportamento normal que você está vendo pode ser corrigido usando um monitor ou placa de vídeo com um hardware LUT para calibração de cores ou forçando o desenho do cursor a ocorrer em um ponto de renderização diferente, consulte esta pergunta sobre Photo.SE . Você também pode editar a imagem do cursor e alterar o nível de branco, se isso o incomodar. No entanto, acho que torna o cursor mais visível na tela.
fonte
Essa resposta começa com uma análise de por que as coisas não são 1: 1 com o digital e termina com possíveis maneiras de mudar as coisas com base na sua pergunta real.
Nesse caso, o cursor é (provavelmente) um item renderizado por hardware que é sobreposto no hardware da placa de vídeo. A primeira coisa a analisar ou tentar ajustar para alterá-lo é o perfil do monitor e / ou os perfis de cores aplicados pelo SO. Os perfis de cores são encontrados no Painel de controle, Todos os itens do painel de controle, Gerenciamento de cores. Lá, você encontrará perfis de cores que alteram a cor antes que cheguem ao próprio monitor.
Os perfis podem ser desativados, para que você possa observar o efeito que ele tem.
Ajustes no software da placa de vídeo. A área de trabalho, o 3D e o material de desenho direto de Vídeo são todos controláveis, mesmo que essas coisas não tenham sido ajustadas no software da placa de vídeo, pode ser que, com tudo definido como 0 0 0, ainda exista algum processamento. Você pode tentar usá-lo para combinar com a sobreposição do cursor, se houver algum motivo real para se preocupar com isso.
A placa de vídeo está sobrepondo o cursor renderizado por hardware e não usa os mesmos parâmetros para o resto do plano de fundo, e é exatamente assim que está funcionando.
- com base na foto de controle, o restante não se aplica a essa pergunta específica -
Outra possibilidade são as configurações do monitor, embora isso seja menos provável. O contraste automático, os itens de cores automáticas em monitores e TVs podem equilibrar enormes áreas claras ou escuras e muitas vezes causar alterações indesejadas. Os ajustes automáticos de cor e nivelamento nos monitores nem sempre são ajustáveis e usam muitos nomes fofos diferentes para as ações que realizam.
Perfis em monitores como jogo, filme, área de trabalho ou quaisquer nomes que eles usem para perfis definem configurações específicas de cor e contraste e brilho que consideram úteis para o perfil selecionado e, novamente, podem ser alterações indesejadas, mesmo para as seleções de perfil adequadas.
Algoritmos de nitidez na câmera, provavelmente na placa de vídeo, mas novamente no monitor podem criar uma matriz de realce em torno das áreas, aumentando os contrastes originais ou (é claro) reduzindo-os. Nesta questão, é menos provável que o branco se expanda além dos pixels aos quais uma matriz de nitidez se aplicaria, a menos que houvesse dois processos diferentes.
A lista fica ainda mais longa quando, na verdade, não é necessário que o software tenha fundos brancos fortes, eles podem ser ajustados. O sistema operacional e os programas podem ter um plano de fundo que não é branco, mas você já sabe que não é assim. Nesta pergunta, se você selecionou a cor do plano de fundo, na área de trabalho ou programa original.
A seleção de cores na área de trabalho mostra a cor do pixel (ou pixels) existente, fornecendo ao usuário os fatos sobre o que o programa está exibindo. A foto colorida é exibida antes que qualquer perfil de cor ajuste a saída. Portanto, a escolha de cores é uma ótima maneira de descobrir a cor real. Em seguida, ele ainda passa pelo processamento novamente.
Existem programas que farão uma captura de tela com o cursor sobreposto. a partir disso, uma pessoa pode fazer uma escolha de cores, mas, novamente, o cursor pode ser desenhado usando um método diferente e processado da mesma maneira que o resto. Portanto, embora seja possível fazer uma captura digital de tela da tela e inclusive do cursor, isso pode mudar o que é realmente visto aqui.
fonte