Peter: pastellfarben berechnen

Beitrag lesen

ok ... und wie sieht jetzt der quellcode aus?
darauf zielte meine frage nämlich ehr ab.

hm, selbst programmiert habe ich das nicht... aber prinzipiell wird man wohl die RGB-Farbangabe (z.B. "#ffcc00") einer gegebenen Farbe in die einzelnen Komponenten splitten ("ff", "cc", "00"), diese dann in Integer Werte wandeln und die Integer-Werte in einer Schleife modifizieren.

Ich hab mal kurz etwas Quellcode umgeschrieben, den ich mal zu nem ähnlichen Thema brauchte. Macht nicht viel, aber vielleicht kannst Du damit als Grundlage was anfangen.

Die wichtigste Funktion ist makeColors(), wenn Du da die Werte für intR, intG, intB abänderst, erhältst Du entsprechend andere Farbverläufe.

<script type="text/javascript">

arrColors = new Array();

// HilfsArray zur Umwandlung der Werte
function getHexArray()
{
 arrHex = new Array();

for(i=0;i<256;i++)
 {
  arrHex[i.toString(16)] = i;
 }
 return(arrHex);
}

arrHex = getHexArray();

//gibt bei Werten von 0 - 255 den entsprechenden Hex Wert zurück
function int2hex(int)
{
 hex = int.toString(16);
 if (hex.length == 1) hex = "0" + hex;
 return(hex);
}

//gibt bei Werten von 00 - FF den entsprechenden Int Wert zurück
function hex2int(hex)
{
 hex = hex.toLowerCase();
 if (hex.substr(0,1) == "0") hex = hex.substr(1,1);
 return(arrHex[hex]);
}

// erstellt Array mit den entsprechenden Farbwerten
function makeColors()
{
 for(i=0;i<16;i++)
 {
  intR = 12 * i;   // achte, die Werte sollten kleiner 255 bleiben
  intG = 5 * i;
  intB = 8 * i;

col = int2hex(intR);
  col += int2hex(intG);
  col += int2hex(intB);

arrColors[i] = col;
 }
}

makeColors();

// Ausgabe der Farben als Balken
for (j=0; j < arrColors.length; j++)
{
 document.write("<div style='color:#fff;background:#" + arrColors[j] + ";'>&nbsp;"+arrColors[j]+"&nbsp;</div>");
}

</script>

Gruß, Peter