Kontrast zweier Farben vergleichen

TomH

Mitglied
Hallo zusammen,
ich habe ein kleines Problem mit Farben.

In unserem Programm ist es möglich für bestimmte Daten Prioritäten zu vergeben. Den Prioritäten sind Farben zugeordnet, die der Anwender selbst vergeben kann. In Tabellen werden die Daten dann entspr. der Priorität eingefärbt (Hintergrundfarbe).
Mein Problem ist jetzt, mit welcher Vordergrundfarbe (weiß oder schwarz) ich den Text schreiben soll.
Ich habe versucht es über die HSB-Werte der Color-Instanz herauszufinden (insbesondere Saturation und Brightness), das funktioniert aber auch nicht immer.
Gibt es eine Möglichkeit irgendwie den Kontrast der Hintergrundfarbe zu Schwarz oder Weiß herauszufinden und entspr. damit zu entscheiden, welche Vordergrundfarbe man wählen soll?

Falls jemand eine Lösung weiß, wäre ich über einen beitrag sehr dankbar
Gruß
Thomas
 
weder schwarz noch weiß, aber: S und B unverändert, H +180 sollte eine Farbe mit vernünftigem Kontrast ergeben. Eventuell auch S und B auf Konstanten (z.B. das maximal Mögliche) und H+180.
 
Spätestens bei (128,128,128) (oder anderen, bei denen H beliebig und/oder S==0 ist) wird's "schwierig". Man könnte sich was "pragmatisches" überlegen, z.B. nur die Helligheit betrachten, und dann irgendeine "einfache" Regel definieren wie H<0.5 -> Weiß, H>=0.5 -> Schwarz, aber ob das immer gut passt muss man sich anschauen...
 
Erst mal danke für die superschnellen Antworten. Die Reaktionszeit ist ja echt der Hammer.

Zu der ersten Antwort. Ich kann leider nur schwarz oder weiß als Vordergrundfarbe verwenden.

Einen pragmatischen Weg hab ich auch schon versucht, auch den, dass ich für die Helligkeit bestimme und wenn der kleiner als die Mitte ist ich weiß nehme und andernfalls schwarz. Leider spielt das der Hue-Wert nicht mit. Je nach Hue kann auch eine hohe Helligkeit eigentlich recht dunkel sein (bei blau z.B) oder bei gelb kann man eigentlich immer Schwarz verwenden. Die Hue-Werte jetzt aufzudröseln wär jetzt doch schon recht mühselig.

Ich habe halt gehofft es gäbe eine Möglichkeit den "Unterschied" zweier Farben zu berechen, also den "Unterschied" der Hintergrundfarbe zu Weiß, und den zu Schwarz und die Farbe mit dem größten "Unterschied" hätte ich dann verwendet.

Trotzdem danke für die Anregungen
 
Ich hatte ein ähnliches Problem und habe es damit gelöst das ich mir die Werte der einzelnen Farben addiert habe und das Ergebnis verglichen. Funktioniert sicher nicht immer....
 

Zurück
Oben