Programmaticamente, come funziona la miscelazione delle tonalità in Photoshop?
-
10-12-2019 - |
Domanda
In Photoshop è possibile impostare la modalità di fusione di un livello per essere "Hue". Se quel livello è, ad esempio, riempito con il blu, quindi sembra prendere il livello sottostante e rende tutto blu ovunque esista un colore non biancastro.
Mi chiedo cosa stia effettivamente facendo. Se ho uno strato di sfondo con un pixel aarggbbbb e il livello sopra di quello è impostato su Modalità fusione "Hue" e c'è un pixel aarrdggb su quel livello, come sono questi due valori combinati per dare il risultato che vediamo? .
Non lascia cadere la RRGGBB dallo strato sottostante. Se lo ha fatto è il colore bianco e nero pure. Inoltre non consentirebbe le variazioni di colore attraverso.
Se un pixel di sfondo è 0xFF00FF00 e il corrispondente pixel di Hue Layer Pixel è 0xFF0000FF, allora sto assumendo che il risultato finale sarà solo 0xFF0000FS perché il blu FF sostituirà il verde FF. Ma, se il pixel di sfondo è 0x55112233 e il pixel della strato di tonalità è 0xFF0000FF, come viene con la tonalità del blu che si presenta?
La ragione per cui chiedo è che mi piacerebbe prendere varie immagini e cambiare la tonalità dell'immagine a livello programmatico nella mia app. Piuttosto che conservare 8 diverse versioni della stessa immagine con colori diversi, mi piacerebbe memorizzare un'immagine e colorarlo secondo necessità.
Soluzione
Ho trovato un algoritmo per convertire RGB in HSV qui: http://www.cs.rit.edu/~ncs/color/t_convert.html
Certo, nella parte inferiore di quella pagina menziona che l'oggetto colore Java ha già metodi per la conversione tra RGB e HSV, quindi l'ho appena usato.
Altri suggerimenti
Ho fatto una ricerca di un modo per replicare quella modalità di fusione in JavaScript / tela ma ho solo inventato la modalità Filtro / Blend "Colorize". (Esempi di seguito)
colorize algoritmo:
- .
- Converti i colori da RGB a HSL;
- cambia il valore di tonalità per quello desiderato (nel mio caso 172⁰ o 0,477);
- Ripristina l'aggiornamento HSL a RGB
Nota: questo è OK sul desktop ma è notevolmente lento su uno smartphone, ho trovato.
Puoi vedere la differenza confrontando queste tre immagini. Originale:
Colorize:
Fireworks '"Blend Hue" algoritmo (che penso sia lo stesso di Photoshop):
Il filtro colorize potrebbe essere un buon sostituto.