Pergunta

No Photoshop Você pode definir o modo de mesclagem de uma camada para ser "HUE". Se essa camada é, por exemplo, preenchida com azul, parece levar a camada abaixo e faz tudo azul onde quer que uma cor não branca exista.

Estou me perguntando o que realmente está fazendo. Se eu tiver uma camada de fundo com um pixel aarggbb e a camada em cima do que é definido para misturar o modo "Hue" e há um pixel aarggbb nessa camada, como são os dois valores combinados para dar o resultado que vemos? .

Não solta apenas o rrggbb da camada abaixo. Se isso fizesse que a cor branca e preta também. Também não permitiria variações de cor.

Se um pixel de fundo for 0xff00ff00 e o pixel de camada de matiz correspondente é 0xFF0000FF, então eu estou assumindo que o resultado final será apenas 0xff0000ff porque o azul FF substitui o verde FF. Mas, se o pixel de fundo é 0x55112233 e o pixel da camada de matiz é 0xff0000ff, como ele vem com a sombra de azul que ele aparece?

A razão que eu pergunto é que gostaria de tirar várias imagens e mudar a matiz da imagem programaticamente no meu aplicativo. Em vez de armazenar 8 versões diferentes da mesma imagem com cores diferentes, gostaria de armazenar uma imagem e colori-la conforme necessário.

Foi útil?

Solução

Eu encontrei um algoritmo para converter RGB para HSV aqui: http://www.cs.rit.edu/~ncs/color/t_convert.html

Claro, na parte inferior dessa página, ele menciona que o objeto de cor Java já tem métodos para converter entre RGB e HSV, então eu usei isso.

Outras dicas

Eu tenho pesquisado uma maneira de replicar esse modo de mesclagem em JavaScript / tela, mas eu só venho com o modo "Colorize" filtro / blend. (Exemplos abaixo)

Colorize algoritmo:

    .
  1. Converta as cores do RGB para HSL;
  2. Altere o valor de matiz para o desejado (no meu caso 172⁰ ou 0,477);
  3. reverter a atualização HSL para RGB

    Nota: Este é ok na área de trabalho, mas é visivelmente lento em um smartphone, eu encontrei.

    Você pode ver a diferença comparando essas três imagens. Original:

    imagem original

    Colorize:

    Result com meu algoritmo

    Algoritmo "Blend Hue" de fogos de artifício (que eu acho que é o mesmo que o Photoshop):

    Fireworks "Blend Hue" Algoritmo

    O filtro colorido pode ser um bom substituto.

    Pergunta de conversão RGB / HSL

    matiz / croma e hsl na Wikipedia

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top