no robot: Helligkeit einer RGB Farbe um bestimmten Faktor verändern

Guten Tag.

ich hab ein Farbumwandlungsproblem.
Ich möchte, dass eine Webhintergrundfarbe, dargestellt im üblichen RGB-Format (leider nicht HSI) bei eingeben eines Textes immer heller bis weiß wird. ich möchte das in Javascript realisieren, tu mich allerdings mit der Farbmathematik etwas schwer..
Ich würde mich sehr freuen wenn mir jemand eine für Javascript verständliche Formel geben könnte, bei der ich, ausgehend von dem R,G und B Wert einer Farbe die Helligkeit derselben mittels z.B. addieren einer Zahl 1 (schwarz) bis 100(weiß), verändern kann und dann wieder neue RGB Werte erhalte.

Danke für die Zeit.

Bernd.

  1. Hi,

    schau mal da, ob Dir das was hilft:

    http://www.cs.rit.edu/~ncs/color/t_convert.html

    Grüße,

    Ronny

  2. Hallo Bernd,

    Danke für die Zeit.

    das finde ich wirklich sehr aufmerksam von Dir :). Es kostet nämlich wirklich Zeit. In meinem Falle aber o.k., weil ich micht eh damit beschäftige, ein anständiges Farbauswahlprogramm für Webseiten zu schreiben. Ich habe Dir hier mal ein Script gebastelt, das eine gleichmäßige Farbreihe erstellt. Start- und Zielfarbe kannst Du frei bestimmen. Die Übertragung auf Deine Hintergrundfarbe mußt Du halt davon ableiten.

    Gruß, Andreas

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html><head></head><body bgcolor="#ffffff">
    <table cellspacing="2" cellpadding="2" border="1">
    <script language="JavaScript">

    /*********** HIER USEREINSTELLUNGEN **************/

    var anzahlFarben = 10   //wieviele Farben soll die Reihe haben? (einschliesslich erste und letzte)

    var R = 0x00            //Ausgangsfarbe R-G-B.
    var G = 0x00            //Angaben können in Hexa, Dezimal oder Oktalschreibweise gemacht werden
    var B = 0x00

    var endR = 0x00         //Zielfarbe R-G-B
    var endG = 0x00
    var endB = 0xff

    /********* ENDE USEREINSTELLUNGEN ***************/

    var schrittweite = 1/(anzahlFarben - 1)
    var farbeR = R
    var farbeG = G
    var farbeB = B

    for(i=0; i<anzahlFarben; i++)
    {
     farbeR = Math.round(R + (endR-R) * schrittweite * i)
     farbeG = Math.round(G + (endG-G) * schrittweite * i)
     farbeB = Math.round(B + (endB-B) * schrittweite * i)

    farbeR = (farbeR > 15) ? farbeR.toString(16) : (farbeR > 9) ? farbeR.toString(10) : '0'+farbeR
     farbeG = (farbeG > 15) ? farbeG.toString(16) : (farbeG > 9) ? farbeG.toString(10) : '0'+farbeG
     farbeB = (farbeB > 15) ? farbeB.toString(16) : (farbeB > 9) ? farbeB.toString(10) : '0'+farbeB
     farbe = farbeR + farbeG + farbeB

    document.write('<tr><td bgcolor="#'+ farbe +'" width=50 height=20> </td><td>'+farbe+'</td></tr>')
    }

    </script>

    </table></body></html>

    --
    http://extra.andeas-lindig.de/was_das/
    "Blau ist gewissermaßen ein reizendes Nichts"
    J.W. Goethe