# Helligkeit einer RGB-Farbe um bestimmten Faktor verändern



## norobot (1. August 2003)

Guten Tag..

Ich hab ein Farbumwandlungsproblem.
Ich möchte, dass eine Webhintergrundfarbe, dargestellt im üblichen RGB-Format bei eingeben eines Textes immer heller bis weiß wird. ich möchte das in Javascript realisieren, tu mich allerdings mit der Farbmathematik (umrechnung rgb in hsi und andersrum?)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.


----------



## Andreas Gaisbauer (2. August 2003)

Hallo,

sehr interessantes Thema, leider kann ich dir nicht wirklich weiterhelfen da ich nicht gerade viel von Farbtheorie verstehe, aber ich habe vielleicht einen Hilfreichen Link für dich: http://easyrgb.com bzw. http://easyrgb.com/math.html 

Wäre nett, wenn du deine Ergebnisse hier Posten könntest, würde mich interessieren...


ciao


----------



## vogtländer (4. August 2003)

Das ist wirklich nicht gerade trivial, was du vorhast. Da haben sich mal kluger Köpfe wie Fellner und Foley drum gekümmert.

Nach langem Suchen hab ich folgenden C++ - Code gefunden. Vielleicht hilft es dir.

```
#include <algorithm>

void RGBtoHSV(
    float r, float g, float b, 
    float& h, float& s, float& v)
{
    float min=std::min(r, std::min(g, b));
    float max=std::max(r, std::max(g, b));
    v=max;

    float delta=max - min;

    if (max!=0)
    {
        s=delta/max;
    }
    else 
    {
       // r = g = b = 0
       // s = 0, v is undefined
       s=0;
       h=-1;
       return;
    }

    if (r==max)
    {
       h=(g-b)/delta; // between yellow & magenta
    }      
    else if (g==max)
    {
       h=2+(b-r)/delta; // between cyan & yellow
    }
    else
    {
       h=4+(r-g)/delta; // between magenta & cyan
    }
    
    h*=60; // degrees
    if (h<0) h+=360;
}
```


EDIT:
Hab grad nochwas gefunden. Diesmal PHP, dafür ist die Rückkonvertierung dabei: http://www.korelstar.de/php_source.php?datei=php_farben.php 

Gruß
Falk


----------



## norobot (4. August 2003)

super danke erstmal


----------

