HERBERS Excel-Forum - das Archiv

Thema: Schriftfarbe anhand Hintergrundfarbe optimieren

Schriftfarbe anhand Hintergrundfarbe optimieren
{Boris}
Hallo zusammen,

wir befinden uns in einer Branche, in der sehr viel mit unendlich vielen Farben gearbeitet wird.
Die Farben werden (in einem "Präsentationsformular") als Hintergrundfarbe gezeigt und sollen in der selben Zelle den Namen der Farbe tragen (das ist - für den Moment - ein unumstößlicher Wunsch - also nicht daneben oder drüber oder drunter, sondern darin).
Als Schriftfarbe kommen nur schwarz oder weiß in Frage. Voreingestellt soll weiß sein - und wenn man das aber nicht lesen kann, dann soll die Schrift auf schwarz geändert werden (im Nachhinein per VBA).
Die Frage ist, ob man aus den Daten der Hintergrundfarbe (liegen alle vor: R, G, B und der Farbcode) irgendeine Art Logik ableiten kann, ob schwarz die bessere Schriftfarbe ist.

Ich hab mal eine Beispieldatei mit ein paar wenigen Farben erstellt - da steht alles weitere drin. Ist noch eine xlsx, da ich noch keinen Code integriert habe.

https://www.herber.de/bbs/user/168467.xlsx

Danke schon mal für Euren Input!

Viele Grüße

Boris
AW: Schriftfarbe anhand Hintergrundfarbe optimieren
peter
Hallo

Ich hab mal ewas gegoogelt und dir in deiner Datei nähere Informationen hinterlassen. Ich hab die Formeln ausprobiert und in deine Datei eingefügt.

https://www.herber.de/bbs/user/168470.xlsx

Peter
AW: Schriftfarbe anhand Hintergrundfarbe optimieren
Onur
DU hast dich doch für die Schriftfarbe der Spalte A entschieden, also musst DU uns erklären, nach welcher Logik du das entschieden hast und wir können das, anhand deiner Erklärung Excel beibringen.
Danke Dir sehr...
{Boris}
Hi Peter,

...für Deinen Input und auch vor allem Deine Arbeit, die Formeln direkt einzufügen!

Ich hab das mathematisch jetzt noch nicht ganz durchblickt und daher für den Moment mal die Ergebnisspalte R zu Rate gezogen. Die Werte dort habe ich mal in der Spalte I mit dem Faktor 0,3 verglichen (größer 0,3 = schwarz) - und das Ergebnis (per Bedingter Formatierung) in der Spalte H simuliert.
Und was soll ich sagen: Es entspricht 1 zu 1 meiner (gefühlten individuellen) Vorgabe in Spalte B - bis auf "grey70" in Zeile 17 - aber da sehe ich ein, dass schwarze Schrift besser ist.
Den Faktor 0,3 hab ich mir aber bislang nur ausgedacht bzw. einfach mal ausprobiert - ohne genau zu verstehen, was sich dahinter verbirgt.
Wollte aber erstmal ein Feedback geben!

Beispieldatei mit vorgenanntem Einbau anbei.

https://www.herber.de/bbs/user/168473.xlsx

Vielleicht kommen wir alle gemeinsam noch zu einem final erklärbaren Ende!

Viele Grüße

Borois
AW: Danke Dir sehr...
peter
Hallo

In Spalte R steht die Luminanz einer RGB Farbe.
In Spalte T wird das Kontrastverhältnis der Farbe mit Schwarz errechnet.
In Spalte U wird das Kontrastverhältnis der Farbe mit Weiss errechnet.

Je grösser der Kontrast umso besser lesbar (laut Theorie ;-) )

Mfg.
Peter
AW: Danke Dir sehr...
Onur
Aber warum "Wenn kleiner als Null" in der Formel bei Zahlen, die nie kleiner als Null sein können?
<=0,04045 (owT)
peter
AW: <=0,04045 (owT)
Onur
Stimmt - wer lesen kann, ........ :)
AW: Schriftfarbe anhand Hintergrundfarbe optimieren
Uduuh
Hallo,
vielleicht hilft das weiter: https://de.planetcalc.com/7779/

Gruß aus'm Pott
Udo
Erstmal ein Sammeldank...
{Boris}
Hi,

...an Euch alle!
Werde mir nachher die Datei ansehen und den Link.
@Daniel: Genau an so was hab ich ja gedacht - aber vielleicht ist das ja schon in Peters Datei enthalten.
@Onur: Das war eine rein subjektive Festlegung - hab ja geschrieben, dass bei manchen Farben auch beides geht.
Muss jetzt erstmal meinen Sohn vom Flughafen abholen. Ich melde mich später wieder!

Danke bisweilen und

viele Grüße

Boris
AW: Schriftfarbe anhand Hintergrundfarbe optimieren
Oppawinni
Ich hatte da mal ein Programm geschrieben und da hab ich mal so zu Spaß auch ne Umwandlung von Farbe in eine Grauskala versucht.
das war etwa Rot/255 * 0,2 + Grün/255 * 0,5 + Blau/255 *0,3
Die Faktoren ergänzten sich jedenfalls zu 1 damit bewegte sich von Grau = 0 , für RGB(0,0,0) bis Grau = 1 für RGB(255,255,255)
Ich war damit zufrieden aber es wurde im Grunde nur schwarz/weiß Darstellung gebraucht.
Das mit den Faktoren ist halt so ne Sache. Das ist sicher nicht ideal, aber halt einfach :)
Mit den Farben, das hat dann auch so seine Tücken, weil es da so viele Einflüsse gibt.
Die Einstellung des Monitors (Kontrast/Helligkeit), der Betrachtungswinkel, die Beleuchtung im Raum bla bla..
Und dann welche Formel auch immer, am Ende musst du entscheiden, wo die Grenze für weiße bzw. schwarze Schrift ist und die Entscheidung wird wahrscheinlich nie ideal sein, weil die Wirkung der Schrift dann auch wieder abhängig ist von Schriftart Schriftgröße Fett oder Kursiv und was weiß ich.
AW: Erstmal ein Sammeldank...
Onur
Ja dann ist es ja easy.
Hatte aber eben einige Unterschiede zu deiner Version - daher die Rückfrage.
https://www.herber.de/bbs/user/168471.xlsm
AW: Erstmal ein Sammeldank...
{Boris}
Hi Onur,

Danke Dir! Du hast den Mittelwert von RGB genommen. Das passt grundsätzlich auch so weit, aber es wäre schön, wenn weiß die vorherrschende Schriftfarbe wäre und nur im echten "Notfall" auf schwarz umgeschaltet wird. In Deiner Beispieldatei sind z.B. die magenta/lila-Farben bei Dir mit schwarzer Schrift versehen - da finde ich weiß besser.
Hab mir auch die Datei von Peter angesehen. Wenn ich dort die Ergebnisspalte R auf größer 0,3 prüfe (0,3 hat keinen mathematischen Hintergrund - hab ich nur ausprobiert), dann wird analog meiner (subjektiven gefühlsmäßigen) Vorgabe in Spalte B gefärbt (bis auf Zeile 17 "grey70" - aber da sehe ich ein, dass schwarz besser ist).
Bin nur noch nicht sicher, ob mein Faktor 0,3 auch allen anderen Farben standhält (und warum es gerade 0,3 ist ;-) ).

Werde jetzt gleich Peter antworten und dort auch die Beispieldatei (mit meinem vorgenannten 0,3-Faktor-Test) hochladen.

Wenn das Gesamtprojekt fertig ist, dann trinken wir einen zusammen :-)

Viele Grüße

Boris
AW: Erstmal ein Sammeldank...
Onur
Dann halt so - Bis auf GRAY70 ist alles gleich.
Die Berechnung ist jetzt wesentlich einfacher:
https://www.herber.de/bbs/user/168474.xlsm
Sehr cool...
{Boris}
Hi Onur,

...TOP Ergebnis! Mich würde nur noch interessieren, wie Du auf die 162 kommst...?

Viele Grüße

Boris
AW: Sehr cool...
Onur
War die höchste Zahl, bei der du dich für weiss entschieden hattest (ausser bei Gray70).
AW: Sehr cool...
Oppawinni
Interessant, ich hab gar nicht geschaut, was raus kommen soll :)
Ich hab bloß mal meine "Grauskalenformel" genommen und geschaut, wo ich die Grenze ziehen würde und lag dann bei Grau 0,64 bezogen auf den Range 0-1.
Das würde dann etwa 163 bezogen auf ein Range 0-255 bedeuten. Auch wenn das ganz ähnlich aussieht...
vom Wunschergebnis (des TO) wäre ich wohl dennoch entfernt, obwohl ich's gut finde :))
Boah..
Oppawinni
..mit meiner doofen, gewürfelten "Grauskalen-Formel" und der Grenze von 0,64 liege ich auch nur bei Grau 70 daneben.
Thema ist gelöst...
{Boris}
Hallo zusammen,

...ich hab mir jetzt mal alle Varianten angeschaut - und sie liegen alle sehr eng beisammen.
Habe mich am Ende für die Variante von Onur entschieden, weil sie eben am Ende sehr einfach ist und ggü. der umfangreichen Variante von Peter so gut wie keine Unterschiede liefert. Man kann - egal auf welchem Hintergrund - alles wunderbar lesen.

=Rot*0,2126+Grün*0,7152+Blau*0,0722

und als Grenzwert 160 festgelegt (größer 160 = schwarz, alles andere weiß).

Bin schwer begeistert von Eurer Hilfsbereitschaft!

Danke an alle - und viele Grüße

Boris
AW: Thema ist gelöst...
Onur
Das Seltsame ist, dass die Excel-Option, die Schriftfarbe auf "automatisch" zu stellen, jämmerlich versagt. :)
AW: Thema ist gelöst...
Oppawinni
Also, schön, vielleicht noch das folgende.
Ich hab mal ein paar Farben genommen und dazu die diese relative Illu, meine "Graustufenformel" und Onurs Variante als Graustufen interpretiert und mir das mal
anzeigen lassen.
So sieht dann aus... und da weiss ich nicht wirklich, was das relative Illu-Dingens wirklich bringen könnte...
Userbild
hab ich mich vielleicht irgendwo verrechnet ?
AW: Thema ist gelöst...
Onur
Bei nur schwarz oder weiss ist das absolut belanglos, was bei Illu rauskommt.
AW: Thema ist gelöst...
Oppawinni
Mich hat nur gewundert, dass bei diesen doch relativ verschiedenen Farben fast identische Werte bei diesem Illu raus kommen.
Ich hab halt mal ne ziemlich lange Liste mit RGB-Werten gemacht, dahinter die rel.Illu gerechnet und danach sortiert.
Das sieht über den ganzen Farbbereich nicht berauschend aus, außer vielleicht bei Schwarz und Weiß.
Ich hab halt hier mal beispielhaft einen Ausschnitt davon rein gestellt.
Da bin ich doch noch am ehesten bei meiner primitiven Grauskala, wobei die real von mir verwendete Formel etwas anders aussieht, aber die ist geheim :)
Man kann offensichtlich nicht alles haben...
{Boris}
Hi Onur,

...aber dafür hab ich ja so kluge Köpfe wie Euch in diesem Forum, um diesen Mangel zu beheben :-)

Danke Dir nochmal sehr!

Viele Grüße

Boris
OT @Onur
{Boris}
Hi Onur,

schick mir mal ne Mail an borisbeaker AT gmx Punkt de

VG, Boris
AW: Sehr cool...
Onur
Hier noch die ältere Version mit den Werten in Hilfsspalte zum Testen:

https://www.herber.de/bbs/user/168475.xlsm
AW: Schriftfarbe anhand Hintergrundfarbe optimieren
Daniel
Eine möglichkeit wäre, die Helligkeit aus dem Mittelwert der drei Farbwerte abzuleiten und hier irgendwo einen Grenzwert festzulegen, ab welchem dann schwarz zu verwenden ist.

Gruß Daniel
AW: Schriftfarbe anhand Hintergrundfarbe optimieren
{Boris}
Hi Udo,

danke Dir sehr! Das ist der selbe Ansatz wie der von Peter. Habe ihm auch geantwortet und nochmal ne Beispieldatei hochgeladen.
Mathematisch hab ich das noch nicht ganz durchblickt - aber vielleicht könnt ihr mir hier noch etwas helfen ;-)

Viele Grüße

Boris
AW: Schriftfarbe anhand Hintergrundfarbe optimieren
{Boris}
Hi Daniel,

Onur hat den Mittelwert genommen und mit der Hälfte (127) verglichen.
So ganz gefällt mir das noch nicht (z.B. die lila/magenta-Farben) - aber vielleicht muss man auch nur den Grenzwert (127) noch verschieben.
In Peters Datei habe ich die Ergebnisspalte R mit einem Faktor von 0,3 verglichen - siehe Antwort an ihn. Dort habe ich auch die Datei hochgeladen. Das Ergebnis gefällt mir gut (ich weiß halt nur nicht, warum genau ;-) ).
Mathematisch hab ich das aber noch nicht so ganz durchblickt... ;-)

Wäre schön, wenn wir das noch (final) geklärt bekommen!

Danke Dir sehr - und viele Grüße

Boris