Helligkeit einer RGB-Farbe um bestimmten Faktor verändern

norobot

Grünschnabel
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.
 
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.
PHP:
#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
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück