Sto lavorando su un'utilità JavaScript in cui sto provando mescolare due colori in modi diversi . Fondamentalmente voglio coprire le modalità di fusione fornite da Photoshop / le specifiche del W3C su compositing e blending (che sono essenzialmente lo stesso).
Gli algoritmi forniti in quel documento non sono troppo utili per me difficili. Innanzitutto, desidero utilizzare i canali alfa in aggiunta. Ho avuto abbastanza successo con questo, utilizzando gli algoritmi piuttosto completi di le specifiche di compattazione SVG .
Purtroppo le specifiche non coprono le modalità indicate come modalità di fusione non separabili nelle specifiche W3C menzionate che sono: tonalità , saturazione , colore e luminosità .
Le specifiche del W3C forniscono algoritmi per questo, ma quelli
a) sembra essere un po 'diverso da quello che Photoshop sta usando (i canali RGB calcolati differiscono da quelli di Photoshop di circa 16 su una scala 0-255). Ciò è stato in effetti causato da me rovinando il mio Photoshop impostazioni .
b) non prendere in considerazione i canali alfa dei colori.
Mi sembra di aver cercato metà del web ma non ho trovato nessuna formula bella e / o autoritaria per quelle quattro modalità di fusione .
Qualcuno ha un'idea su dove trovarli? (Preferibilmente in JavaScript, ma immagino di poter lavorare a modo mio da qualsiasi altro linguaggio di programmazione o pseudo-codice. In pratica, dovrebbe comunque ridursi a semplici calcoli matematici.)