Thema: Farb-Berechner

Ich habe ein Problem:

Ich möchte zwischen der Farbe #xxxxxx und #yyyyyy einen Farbübergang mit x Farben machen. Das ist nun sehr schwierig. Könnte nicht jemand ein Pogramm chreiben, dass alle x Farben zwischen der Farbe x und y herausfindet und ausgibt!   <img border="0" title="" alt="[Cool]" src="images/icons/cool.gif" /> 

ZB:

Zwischen der Farbe #000000 und #ffffff 6 Farben herausfinden, dass daraus ein ein kleiner Farbübergang wird!

2

Re: Farb-Berechner

Hallo?
Wo ist das Problem?
Wandel den Hex-Wert für jeden Kanal einfach in einen Dezimalen um. So hast du 3 Zahlen zwischen 0 und 255 und nochmal drei für die Zielfarbe. Für jedes Zahlenpaar errechnest du die Differenz, teilst diese durch (Anzahl der Zwischenstufen+1) und addierst diese Zahl dann jeweils zum Anfangswert. das ganze packst du dann wieder in hexadezimale Werte und gut is...

Beispiel:
#FFF9ED -> #F20834 mit 6 zwischenschritten:

FFF9ED = 255/249/237
F20834 = 241/11/48
Differenz: -14/-238/-189
durch 7: -2/-34/-27 (jo, is kein Zufall, ich weiß)
1. Farbe: 253/215/210 -> #sowieso
2. Farbe: 251/... usw.

Basti

3

Re: Farb-Berechner

Hallo T-Bird,

nur noch als Ergänzung:

hier-> http://www.nightfire.ch/java/index1.htm
unter javascripts -> utilities

gibt es ein script, wo du dir die Umrechnerei Hex in Dezimal und umgekehrt abkucken kannst.

Gruß Andreas
 
  <small>[ 19-08-2002, 22:23: Beitrag editiert von: andi_b ]</small>

4

Re: Farb-Berechner

@andi_b:

Dein Link ist ziemlich broken oder Deep-Link-feindlich.

[edit]...ich seh gerade, dass du ja den "Pfad" zur Seite dazugeschrieben hast[/edit]

Vermutlich will T_Bird ja das Bild auch gleich erstellen und ich bezweifle mal, dass JS Bilder generieren kann (hab aber keine Ahnung, ob das stimmt). PHP hat zb. die Umrechnungsfunktionen hexdec() bzw. dechex(), und ähnliches dürfte wohl jede Sprache anbieten... Mit der gd in PHP kannst du so eine Grafik auch problemlos zusammenschustern...

Basti
 
  <small>[ 19-08-2002, 23:08: Beitrag editiert von: Basti ]</small>

5

Re: Farb-Berechner

Hallo,

@ Basti: letzteres ist der Fall, schlimmer kommts noch wenn du direkt zum script verlinken willst   <img border="0" title="" alt="[Enttäscht]" src="images/icons/frown.gif" /> 

@ T-Bird:
hier ist mal ein Beispiel für eine Spielerei mit sowas, geht aber leider nicht mit Opera (also die Rechnerei sicher schon, aber nicht der Zugriff auf die Hg-Farbe)

  </font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> 
<html>
<head>
<title>Farbenspiel</title>
<script type="text/javascript">
<!--
var startRed, startGreen, startBlue, endRed, endGreen, endBlue, step, zaehler;

var hexa = new Array(16);
for(var i=0; i<10; i++) hexa[i]=i;
hexa[10]="a";hexa[11]="b";hexa[12]="c";hexa[13]="d";hexa[14]="e";hexa[15]="f";

function hex(i){
if (i<0) return "00";
else if (i>255) return "ff";
else return ""+
hexa[Math.floor(i/16)] + hexa [i%16];
}

function setbgColor (r, g, b){
var hr = hex(r); var hg = hex(g); var hb = hex(b);
document.bgColor = "#"+hr+hg+hb;
}

function setBg(){
setbgColor(
Math.floor (startRed * ((step-zaehler)/step) + endRed * (zaehler/step)),
Math.floor (startGreen * ((step-zaehler)/step) + endGreen * (zaehler/step)),
Math.floor (startBlue * ((step-zaehler)/step) + endBlue * (zaehler/step)));
zaehler++;
if (zaehler<=step)
setTimeout ("setBg()",1);
}

function fade (a,b,c,d,e,f,g){
if(!window.opera){
startRed=a; startGreen=b; startBlue=c; endRed=d; endGreen=e; endBlue=f; step=g;
zaehler=1;
setBg();
}
}

//-----------------------------------------------------------------------------------------------
// Aufruf -> immer nur ein fade - Aufruf aktivieren!
//
// fade(StartwertRot,StartwertGrün,StartwertBlau,ZielwertRot,ZielwertGrün,ZielwertBlau,Schritt)
//
//-----------------------------------------------------------------------------------------------

//fade (0,0,0,255,255,255,100); // schwarz zu weiÃ?

fade (255,255,255,0,0,255,100); //weiÃ? zu blau
//fade (255,255,255,0,255,0,100); //wei� zu grün
//fade (255,255,255,255,0,0,100); //weiÃ? zu rot

//-->
</script>
</head>
<body bgcolor="#000000">
<h3>Verschiedene Farbvarianten am ende des scriptes einstellbar</h3>
</body>
</html>[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">GruÃ? Andreas