Sto cercando un algoritmo per ottenere il miglior colore del testo (il più piacevole alla vista) da un dato colore di sfondo.Algoritmo per ottenere il miglior colore del testo
Qualche idea?
Sto cercando un algoritmo per ottenere il miglior colore del testo (il più piacevole alla vista) da un dato colore di sfondo.Algoritmo per ottenere il miglior colore del testo
Qualche idea?
"Il colore migliore" è molto soggettivo e dipendente dal contesto. Dipende dall'effetto desiderato: se vuoi il massimo contrasto possibile, cerca colori complementari (che ti darebbero rosso su verde, giallo su blu ecc.). Se vuoi colori "simili", cerca armonie analoghe. Se vuoi decidere solo tra bianco e nero, misura la luminosità (hamstergene ha pubblicato una formula molto buona per questo).
Ovunque tu vada, il modello di colore HSV è la chiave.
Ottenere colori complementari o analoghi è banale (ad esempio hue_text = (hue_bg + 180) % 360
O hue_text = (hue_bg + 30) % 360
).
È anche possibile sperimentare valori (luminosità) e saturazione per un contrasto migliore. Ad esempio, v_text = 1 - v_bg
potrebbe fornire testo scuro su sfondo luminoso e viceversa (attenzione ai toni medi!). Non deve essere lineare, è anche possibile eseguire una funzione di passaggio come: if v_bg < 0.5 then v_text = 1 else v_text = 0
o if s_bg < 0.5 then s_text = 1 else s_text = 0
(vibrante su bianco).
Questi sono solo alcuni suggerimenti. In una parola: Dipende!
Google per teoria dei colori e armonie di colore. Alcuni link:
http://www.tigercolor.com/color-lab/color-theory/color-harmonies.htm
http://www.colormatters.com/color-and-design/basic-color-theory
Non v'è meglio per tutti.
dire se è necessario assicurarsi che il testo sarà facilmente leggibile, la seguente semplice formula ha funzionato bene per me:
textColor = brightness(backColor) > 0.5 ? black : white;
in cui la luminosità è definito come
brightness(R,G,B) = 0.299*R + 0.587*G + 0.114*B
(ci sono diverse definizioni per "luminosità", ho usato questo, ma penso che qualcuno avrebbe funzionato).
Sono tornato a cercarlo e ricordando che qualcuno ha dato una risposta migliore, ed eccoti qui. :-) –
Non andare a downvote perché è interessante e utile, ma potresti voler spiegare "il colore migliore" un po 'più chiaramente per tutti. – Widor
Widor ha un ottimo punto. Si prega di riformulare per ampliare ciò che intendi per "miglior colore" (il più piacevole alla vista, il più alto contrasto, il daltonismo amichevole, qualunque cosa). – NPE
"il più piacevole per gli occhi" – user954469