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à.

È stato utile?

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:

    .
  1. Converti i colori da RGB a HSL;
  2. cambia il valore di tonalità per quello desiderato (nel mio caso 172⁰ o 0,477);
  3. 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:

    Immagine originale

    Colorize:

    Risultato con il mio algoritmo

    Fireworks '"Blend Hue" algoritmo (che penso sia lo stesso di Photoshop):

    Fireworks "Blend Hue" Algorithm

    Il filtro colorize potrebbe essere un buon sostituto.

    Domanda di conversione RGB / HSL

    hue / chroma e hsl su wikipedia

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top