Inverte as cores da tela por * valor *

2

Como inverto as cores da tela por valor ?

A maneira mais comum de inverter cores é usar negação de RGB. Infelizmente, não é muito bonito: o azul fica amarelo, o verde fica magenta, etc.

O que eu quero é inverter value , um dos componentes entre hue e saturation . Desta forma, as cores escuras se tornarão leves, a luz se tornará escura, mas o azul permanecerá azul de qualquer maneira.

Exemplo de saída (criada com o GIMP, não funciona na tela inteira):

= >

O objetivo é ter a tela inteira "invertida", para que você possa ler PDFs, Firefox, mensagens instantâneas - tudo em cores escuras.

    
por VasyaNovikov 16.04.2014 / 10:31

2 respostas

1

Existe uma solução envolvendo compositores baseados em OpenGL (compton, por exemplo) e um shader personalizado (* .glsl).

Aqui está a observação da técnica, junto com o arquivo shader: link

    
por 25.02.2017 / 17:37
0

Você pode usar a ferramenta ImageMagick com o opção de matriz de cores :

This option permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255).

As an example, to add contrast to an image with offsets, try this command:

convert kittens.jpg -color-matrix \
    " 1.5 0.0 0.0 0.0, 0.0, -0.157 \
     0.0 1.5 0.0 0.0, 0.0, -0.157 \
     0.0 0.0 1.5 0.0, 0.0, -0.157 \
     0.0 0.0 0.0 1.0, 0.0,  0.0 \
     0.0 0.0 0.0 0.0, 1.0,  0.0 \
     0.0 0.0 0.0 0.0, 0.0,  1.0" kittens.png
    
por 16.04.2014 / 11:05