norbert3f: Kontrastfarbe berechnen

Hi,

bei farbigen Tabellenzellen kommt es oft vor, dass der Text nicht mehr zu lesen ist.
Also wollte ich dynamisch zur Hintergrundfarbe eine passende Fordergrungfarbe berechnen.

z.B.:
$rotF = 255 - $rotH;
$grunF = 255 - $grunH;
$blauF = 255 - $blauH;

Leider funktioniert das nicht, es tritt immer noch der Fall auf, dass die Schrift nicht wahrnembar ist.

Hat da jemand vielleicht eine Idee ... ?

Gruss und Dank Norbert

PS:
Habe bei Google nach 'Kontrastfarbe berechnen' gesucht, aber nur Kleider-Shops gefunden ... :-((

  1. Hallo norbert3f,

    Habe bei Google nach 'Kontrastfarbe berechnen' gesucht, aber nur Kleider-Shops gefunden ... :-((

    Müsste das nicht "konträrfarbe" heißen? Du suchst, z.B. bei der Farbe gelb die Farbe blau, oder? Bzw. willst sie berechnen...

    Ich habe mal so etwas in PHP geschrieben. Aber ich glaube ich habe die Sourcen verbummelt. Eigentlich ist es recht einfach. Wandle die Farben z.B. in Hex-Werte um und berechne den Gegenwert. Probier einfach mal ein wenig rum, gerade mit den Farben, bei denen Du den Gegenwert ja kennst.

    Gruß,
    small-step

    1. Hi small-step,

      ... etwas in PHP geschrieben. Aber ich glaube ich habe die Sourcen verbummelt.

      man sollte Dich vierteilen ... ;-)

      Mein bisheriger Versuch wurde noch nicht uebertroffen:
      http://www.uris.de/test/dbf/pick.16.color.php

      gruss norbert

      1. Hallo Norbert,

        Mein bisheriger Versuch wurde noch nicht uebertroffen:
        http://www.uris.de/test/dbf/pick.16.color.php

        nettes Script. Ist der Quelltext geheim?

        Gruß, Andreas

        --
        http://forum.andreas-lindig.de <img src="http://forum.andreas-lindig.de/bilder/logo.png" border="0" alt="">
        einfach mal testen und Meinung hinterlassen
    2. Hallo small-step!

      Habe bei Google nach 'Kontrastfarbe berechnen' gesucht, aber nur Kleider-Shops gefunden ... :-((

      Müsste das nicht "konträrfarbe" heißen?

      Nein, die Komplementärfarbe ergibt immer einen schönen Kontrast, so dass es sich nach individuellem Geschmacksempfinden manchmal sogar "beißt":

      http://www.google.de/search?hl=de&ie=UTF-8&q=Komplementärfarbe++rgb+&btnG=Suche&meta=

      Gruß Gernot

      1. Hi,

        habe nun zwei Varianten und bitte um eine Bewertung.
        http://www.uris.de/test/dbf/pick.16.color.php
        Natuerlich 'mit Begruendung', sonst nutzt es ja nichts ... ;-)

        Gruss und Dank

        Norbert

        1. Hallo Norbert,

          die Feuerzangenbowle lässt grüßen!

          habe nun zwei Varianten und bitte um eine Bewertung.

          http://www.uris.de/test/dbf/pick.16.color.php

          Natuerlich 'mit Begruendung', sonst nutzt es ja nichts ... ;-)

          Das ist absolut genial, mit welcher Technik hast du das gemacht? Ein Java-Applet ist das ja wohl nicht.

          In Variante 1 hebt sich die Schriftfarbe auf jeden Fall immer gut von der Hintergrundfarbe ab. Nur würde mich mal interessieren, was passiert, wenn man den Farbkreis auch in ein Pechschwarz verlaufen lässt, so dass man wirklich alle Farben hat und nicht nur die, die auf einen Hex-Wert von minimal ca. "76" kommen (in der Mitte des Kreises). Nur dann könnte man beurteilen, ob sich nicht doch enteder ein reines Weiß oder ein reines Schwarz als Textfarbe (also Variante 2) besser vom Hintergrund abheben.

          Gruß Gernot

          1. Hi,

            http://www.uris.de/test/dbf/pick.16.color.php

            Das ist absolut genial, mit welcher Technik hast du das gemacht? Ein Java-Applet ist das ja wohl nicht.

            da ich nichts dergleichen aktiviert habe und mir ein Blick in den Quelltext verrät: INPUT TYPE="image"
            läuft alles serverseitig ab.
            Die Werte sind gut, bis auf ein Problem bei roter Schriftfarbe auf blauem Grund. Auch wenn das theoretisch passen sollte, praktisch ist das leider nicht der Fall und bedarf einer Sonderbehandlung.

            freundliche Grüße
            Ingo

  2. hi,

    Also wollte ich dynamisch zur Hintergrundfarbe eine passende Fordergrungfarbe berechnen.

    z.B.:
    $rotF = 255 - $rotH;
    $grunF = 255 - $grunH;
    $blauF = 255 - $blauH;

    Leider funktioniert das nicht, es tritt immer noch der Fall auf, dass die Schrift nicht wahrnembar ist.

    das _kann_ doch so gar nicht funktionieren.

    hintergrundfarbe sei mal #7f7f7f, also RGB(127|127|127).

    da käme nach deiner rechnung dann also RGB(128|128|128), bzw. #808080 heraus - und das soll jetzt einen lesbaren kontrast ergeben ...?

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Moin,

      z.B.:
      $rotF = 255 - $rotH;
      $grunF = 255 - $grunH;
      $blauF = 255 - $blauH;
      [...]
      das _kann_ doch so gar nicht funktionieren.

      hintergrundfarbe sei mal #7f7f7f, also RGB(127|127|127).

      da käme nach deiner rechnung dann also RGB(128|128|128),

      vielleicht als Abhilfe:

      $rotF   = ($rotH   + 127) % 256;
      $gruenF = ($gruenH + 127) % 256;
      $blauF  = ($blauH + 127)  % 256;

      (Das '%' ist der Modulo-Operator, d.h. Division mit Rest).

      Dabei muss nicht unbedingt die Komplementärfarbe
      herauskommen, zumindest solle die Farbe aber einen
      großen "Farbabstand" zur Hintergrundfarbe haben.

      Viele Grüße

      Andreas