Szukam algorytmu, aby uzyskać najlepszy kolor tekstu (najbardziej miłe dla oka) z danego koloru tła.Algorytm, aby uzyskać najlepszy kolor tekstu
Każdy pomysł?
Szukam algorytmu, aby uzyskać najlepszy kolor tekstu (najbardziej miłe dla oka) z danego koloru tła.Algorytm, aby uzyskać najlepszy kolor tekstu
Każdy pomysł?
"Najlepszy kolor" jest bardzo subiektywny i zależny od kontekstu. To zależy od tego, jaki efekt chcesz: Jeśli chcesz uzyskać najwyższy możliwy kontrast, szukaj uzupełniających się kolorów (które dają czerwone na zielonym, żółtym na niebieskim itd.). Jeśli chcesz kolorów, które są "podobne", poszukaj analogicznych harmonii. Jeśli chcesz zdecydować tylko w czerni i bieli, zmierz jasność (hamstergene zamieścił na to bardzo dobrą formułę).
Gdziekolwiek jesteś, kluczem jest model kolorów HSV.
Uzyskiwanie uzupełniających lub analogicznych kolorów jest banalne (np. hue_text = (hue_bg + 180) % 360
OR hue_text = (hue_bg + 30) % 360
).
Można również eksperymentować z wartością (jasność) i nasyceniem dla lepszego kontrastu. Na przykład v_text = 1 - v_bg
może dać ciemny tekst na jasnym tle i na odwrót (uważaj na tony średnie!). Nie musi być liniowy - możesz również przejść do funkcji krokowej, takiej jak: if v_bg < 0.5 then v_text = 1 else v_text = 0
lub if s_bg < 0.5 then s_text = 1 else s_text = 0
(żywa na bladym).
To tylko kilka wskazówek. Jednym słowem: To zależy!
Google dla teorii kolorów i harmonii kolorów. Niektóre linki:
http://www.tigercolor.com/color-lab/color-theory/color-harmonies.htm
http://www.colormatters.com/color-and-design/basic-color-theory
Nie ma najlepsze dla wszystkich.
powiedzieć, czy trzeba się upewnić, tekst będzie czytelny, następujące prosta formuła działa dobrze dla mnie:
textColor = brightness(backColor) > 0.5 ? black : white;
gdzie jasność jest zdefiniowany jako
brightness(R,G,B) = 0.299*R + 0.587*G + 0.114*B
(istnieją różne definicje dla "jasności", użyłem tego, ale myślę, że każdy mógłby działać).
Wróciłem, szukając go i pamiętając, że ktoś dał lepszą odpowiedź, a oto jesteś. :-) –
Nie zamierzam przegłosować, ponieważ jest interesująca i przydatna, ale lepiej wyjaśnić "najlepszy kolor" dla wszystkich. – Widor
Widor ma bardzo dobry punkt. Zapoznaj się z rozszerzeniem tego, co masz na myśli przez "najlepszy kolor" (najprzyjemniejsze dla oka, najwyższy kontrast, przyjazna ślepota kolorów, cokolwiek). – NPE
"najprzyjemniejsze dla oka" – user954469