Esiste una procedura ottimale su come hash una stringa arbitraria in un valore di colore RGB? O per essere più generale: a 3 byte.Hash stringa in colore RGB
Stai chiedendo: quando mai avrò bisogno di questo? Non ha importanza per me, ma immagina quei grafici a tubo su qualsiasi GitHub network page. Ci si può vedere qualcosa di simile:
Dove ogni linea colorata indica un ramo git distinta. L'approccio low-tech per colorare questi rami sarebbe un CLUT (tabella di ricerca del colore). La versione più sofisticata sarebbe:
$branchColor = hashStringToColor(concat($username,$branchname));
Perché si desidera un colore statico ogni volta che si vede la rappresentazione di rami. E per i punti bonus: come garantisci una distribuzione uniforme dei colori di quella funzione hash?
Quindi la risposta alla mia domanda si riduce all'implementazione di hashStringToColor()
.
Ha funzionato alla grande, grazie. – clayzermk1
Anche se si desidera garantire colori leggibili (ad esempio, garantire un contrasto e una saturazione sufficientemente elevati), si dovrà fare un po 'più di lavoro. Potrebbe essere più facile lavorare in HSV o LAB e convertire in RGB. – naught101
Bella soluzione! –