Die Hintergrundfarbe für eine meiner Seiten wird aus der Hintergrundfarbe der Benutzer als Hintergrundfarbe gesetzt. Ich habe eine Seite, die eine runde Box mit einem schwarzen Rand hat. Der Rahmen sieht nicht gut aus, wenn die Hintergrundfarbe dunkel ist. Daher möchte ich den Rand des Hintergrunds entfernen, der dunkler als eine beliebige Hex-Farbe ist.Gibt es eine Möglichkeit, zwei Farben in JS zu vergleichen, wie 'Wenn Farbe A dunkler ist als # 202020'
Die Art, wie ich darüber nachdachte, war die Verwendung einer Regex, um die 3 RGB-Werte zu ziehen und sie zu summieren und diese mit meiner Referenzfarbe zu vergleichen. Gibt es einen besseren Weg, dies zu erreichen?
HSL/HSV wäre besser als Summieren der Werte und nehmen einen Durchschnittswert, da sie die Frequenzantwort des menschlichen Auges berücksichtigen. # 0c0 und # 900 sehen in der Helligkeit näher als # 0c0 und # c00 zum Beispiel aus. Einfach die Werte zu summieren wäre kein Weg vorwärts, denn dann wäre # 990000 anscheinend so hell wie # 333333. – DMI
Es gibt ein PHP-Beispiel unter http://www.serennu.com/colour/rgbtohsl.php (überspringe einfach das Astrologie-Zeug, wenn du es nicht magst), es sollte einfach sein, dies in JS zu übersetzen (der Algorithmus kommt) aus [EasyRGB: RGB → HSL] (http://easyrgb.com/index.php?X=MATH&H=18#text18)). –