Was muss ich wie die Multi-Farbverlauf Bild unten ist ein dynamisches schaffen: für 2/3/4/5Dynamische Multi-Farbverlauf Bild
Ich brauche zu erstellen dynamisch/6 Farben, für den Moment arbeite ich an 6 Farbverlauf.
Was ich bisher getan haben, ist:
$size = 1536;
$thickness = 54;
$im = imagecreatetruecolor($size, $thickness);
$clrCount = count($clr);
$limit = floor($size/$clrCount);
for($i = 0; $i < $limit; $i++) {
// Line 1: red = 255 ; green = 0 -> 255 ; blue = 0
$mycolors[$i] = imagecolorallocate($im, 255, $i, 0);
// Line 2: red = 255 -> 0 ; green = 255 ; blue = 0
$mycolors[$i + $limit] = imagecolorallocate($im, (255 - $i), 255, 0);
// Line 3: red = 0 ; green = 255 ; blue = 0 -> 255
$mycolors[$i + $limit*2] = imagecolorallocate($im, 0, 255, $i);
// Line 4: red = 0 ; green = 255 -> 0 ; blue = 255
$mycolors[$i + $limit*3] = imagecolorallocate($im, 0, (255 - $i), 255);
// Line 5: red = 0 -> 255 ; green = 0 ; blue = 255
$mycolors[$i + $limit*4] = imagecolorallocate($im, $i, 0, 255);
// Line 6: red = 255 ; green = 0 ; blue = 255 -> 0
$mycolors[$i + $limit*5] = imagecolorallocate($im, 255, 0, (255 - $i));
}
for ($i=0; $i < $size; $i++) {
imageline($im, $i, 0, $i, $thickness-1, $mycolors[$i]);
}
imagepng($im);
imagegd($im);
imagedestroy($im);
Ich habe das Bild oben mit Hilfe von this article
Aber der Code ist hier statische Farbcodes verwenden, wenn ich mit zu manipulieren tryed es ich erhalte Bild wie unten:
EDITED CODE
$size = 1536;
$thickness = 54;
$im = imagecreatetruecolor($size, $thickness);
$clrCount = count($clr);
$limit = floor($size/$clrCount);
$clr = array(0 => '4d6eae', 1 => 'e58f0e', 2 => 'ff00ff', 3 => '9900ff', 4 => '9f560a', 5 => '93c47d');
list($r, $g, $b) = sscanf($clr[0], "%02x%02x%02x");
list($r1, $g1, $b1) = sscanf($clr[1], "%02x%02x%02x");
list($r2, $g2, $b2) = sscanf($clr[2], "%02x%02x%02x");
list($r3, $g3, $b3) = sscanf($clr[3], "%02x%02x%02x");
list($r4, $g4, $b4) = sscanf($clr[4], "%02x%02x%02x");
list($r5, $g5, $b5) = sscanf($clr[5], "%02x%02x%02x");
for($i = 0; $i < $limit; $i++) {
// Line 1: red = 255 ; green = 0 -> 255 ; blue = 0
$mycolors[$i] = imagecolorallocate($im, $r, $i, 0);
// Line 2: red = 255 -> 0 ; green = 255 ; blue = 0
$mycolors[$i + $limit] = imagecolorallocate($im, ($r1 - $i), $g1, 0);
// Line 3: red = 0 ; green = 255 ; blue = 0 -> 255
$mycolors[$i + $limit*2] = imagecolorallocate($im, 0, $g2, $i);
// Line 4: red = 0 ; green = 255 -> 0 ; blue = 255
$mycolors[$i + $limit*3] = imagecolorallocate($im, 0, ($g3 - $i), 255);
// Line 5: red = 0 -> 255 ; green = 0 ; blue = 255
$mycolors[$i + $limit*4] = imagecolorallocate($im, $i, 0, $b4);
// Line 6: red = 255 ; green = 0 ; blue = 255 -> 0
$mycolors[$i + $limit*5] = imagecolorallocate($im, $r5, 0, ($b5 - $i));
}
for ($i=0; $i < $size; $i++) {
imageline($im, $i, 0, $i, $thickness-1, $mycolors[$i]);
}
imagepng($im);
imagegd($im);
imagedestroy($im);
können Sie sehen, dass der Gradient-Effekt verloren geht, da die statischen 255 mit dynamischem Wert ersetzt wird, die negativen Zahlen schaffen und somit ihre Wirkung verlieren.
Kann mir jemand helfen, ein dynamisches Farbverlaufsbild mit diesem Code zu erstellen oder kann mir helfen, eine andere Richtung, um diese Art von Ausgabe mit Gd-Bibliothek zu erreichen.
Jetzt AKTUALISIERT
wenn ich die Antwort auf diese Frage bekam, habe ich ein neues Problem auf diese Frage bezogen.
Was ich will, erreichen, ist eine zufällige Farbzuordnung nun, so etwas wie dies unter:
Ich bin wie mit dem Problem, das oben im Fall der sechs Farb Array gehen, müssen einen Hinweis in Gang zu bringen.
Ja sicher, was weitere Informationen benötigen Sie? –
Danke für Ihre Mühe, jetzt habe ich eine Richtung, um weiterzugehen :) –
Startwert der Farbe, Endwert der Farbe, Anzahl der Schritte, .. :) - Edit: kein Problem, es ist ein interessantes Problem. – Jordumus