Farbe = Hell oder Dunkel?

Naughty

Grünschnabel
Hi,
gibt es eine Möglichkeit mit einem Script (PHP?) rauszufinden, ob eine Farbe (Hexcode) hell oder dunkel ist?

In etwa (Beispiel nur zur verständnis):

If($farbe == hell){
$schriftfarbe = schwarz;​
}
elseif($farbe == dunkel){
$schriftfarbe = weiß;​
}


Würde mich über eine Hilfe sehr freuen.

Mit freundlichen Grüßen
Joscha
 
Hallo!

Da die Farbinformation im Hex Format vorliegen und das ja ein "ganz normales" Zahlensystem ist denke ich mir (ohne es 100% zu wissen), dass ein Vergleich nach dem Muster....

Schwarz="000000" (ganz dunkel)
Weiss="FFFFFF" (ganz hell)
Vergleichswert wäre die Mitte der beiden (!?)

wenn Farbe < vergleichswert; $art="Hell"
wenn Farbe > vergleichswert; $art="Schwarz"

Könnte so oder so ähnlich gehen...


:confused:
 
Nicht ganz, im RGB-Raum alle Kanäle gleichberechtigt sind, wärend das Hexadazimalsystem natürlich ein Stellenwertsystem ist, bei dem Stellen, die weiter links liegen, weitaus mehr Gewichtung haben.

Du könntest den Mittelwert aus den Werten RR, GG und BB bilden, und diesen vergleichen.

Beispiel: #22FF78
Code:
(0x22 + 0xFF + 0x78) / 3 = 0x88

0x88 liegt über der Hälfte von 0xFF (0x7F), obwohl
0x22FF78 deutlich unterhalb der Hälfte von
0xFFFFFF liegt

Gruß

P.S.: Man kann den einzelnen Kanälen natürlich eine leicht unterschiedliche Gewichtung geben, da z.B. Grün Helligkeitsintensiver ist, als Blau.
.
 
Zurück