Powiel możliwe:
given a background color, how to get a foreground color that make it readable on that background color?Automatycznie określić optymalną fontcolor przez backgroundColor
Zastanawiam się czy jest jakiś algorytm do określenia optymalnego fontcolor dla czytelności poprzez jego kolor tła.
Na przykład: Tworzę ikonę z dynamicznym tekstem i kolorem. Jeśli kolor jest trochę ciemny, chcę ustawić kolor czcionki na biały, a jeśli jest dość jasny, chcę, aby był czarny (a może nawet szarawy).
public DynamicIcon(String iconText, Color backgroundColor)
{
this.iconText = iconText;
this.backgroundColor = backgroundColor;
this.fontColor = determineFontColor(backgroundColor);
}
//This is what I need (Pseudocode):
private fontColor determineFontColor(Color backgroundColor)
{
if(backgroundColor == bright)
return Color.BLACK;
if(backgroundColor == dark)
return Color.WHITE;
//If possible:
if(backgroundColor == somethingInBetween)
return Color.GRAYISH;
}
Niestety nie znalazłem żadnego algorytmu takiego, mimo iż jestem dosyć pewny, że już istnieje. Ktoś ma jakieś pomysły?
Dzięki, ymene
dziękuję za podzielenie się pomysłem. Spróbuję tego. Może i wystarczająco dobrze dla mnie. – crusam
rgb (198, 217, 188) jest dość ciemno fioletowym użytkiem OSX dla koloru tła listy wyboru (używają białego dla koloru pierwszego planu tekstu.) 191 + 87 + 218 = 496, więc ten algorytm określiłby to jako "lekkie" . Inne rozwiązanie, które miałem, które miało zostać przekonwertowane na HSB, a następnie wykorzystałem wartość B jako wartość graniczną, nie powiodło się w tym samym przykładzie. – Trejkaz