COLORREF hell oder dunkel
-
kann man anhand des COLORREF wertes feststellen ob eine Farbe hell oder dunkel
ist?
Gruß Dirk
-
Kommt drauf an, was Du unter hell und dunkel verstehst.
Wenn Du Beispielsweise alles unter RGB(127, 127, 127) als dunkel und rest als hell verstehst ist das gar kein Problem.
-
Ein Benutzer kann in meinen Programm eine Farbe auswählen die als Hintergrund
in einen Fenster Angezeigt wird Dementsprechend möchte ich die Textfarbe weiß oder schwarz setzenCOLORREF hinterg; if(hinterg > ???) :warning: SetTextColor(RGB(255,255,255)) else SetTextColor(RGB(0,0,0))Danke Gruß
Dirk
-
suchst du vllt. den lösungsansatz, das RGB-Farbmodell in ein anderes Farbmodell umzuwandeln, das einen Helligkeitswert (Schwarz/Weiß) besitzt?
dann schau dir mal
http://de.wikipedia.org/wiki/YCbCr-Farbmodell
an oder auch
http://de.wikipedia.org/wiki/HSV-Farbraum
denn der RGB-Farbraum kennt diese "Helligkeit" nicht, die müsstest du eben, wie bereits schon erwähnt im Thread, selbst abgrenzen (was du bei den anderen beiden Farbmodellen allerdings auch musst. aber sie geben dir eben einen wert)
-
...oder den Benutzer auch die Textfarbe auswählen lassen...

-
Versuch doch mal so etwas wie:
COLORREF const WHITE = RGB(255, 255, 255); COLORREF const BLACK = RGB(0, 0, 0); COLORREF calcBkgdColor(COLORREF const & color) { return color.GetRValue() + color.GetGValue() + color.GetBValue() < (3 * 128) ? WHITE : BLACK; }Ist nur so eine ad hoc Idee, hab ich selbst nicht ausprobiert.