PHP Image - Farbverlauf
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beschreibung
bild
bleiben
break
code
existierenden tabelle
farbe
header
http
image
informieren
manual
not
objekt
palette
richtung
see
switch
url
verschiedene farben
-
Ich bin mit meinem Wissen echt am Ende..
Wollte nur mal eben aus langerweile mit PHP ein Bild mit einfachem Schwarz-Weiß Farbverlauf erstellen, allerdings funktioniert dies nur in eine Richtung..bei bestimmten Wert soll der Farbverlauf eigentlich wieder in die andere Richtung gehen. (Schwarz-Weiß-Schwarz-Weiß-...)
Hoffe ihr findet meinen Fehler hier im Code...:
<?php header("Content-type: image/png"); $rr = 0; $gg = 0; $bb = 0; $xx = 900; $maxy = 600; $change; $image = ImageCreate($xx,$maxy); $bg = imagecolorallocate($image, 0,0,0); imagecolortransparent( $image, $bg ); for($yy = 0; $yy <= $maxy; $yy++){ $color = imagecolorallocate($image, $rr,$gg,$bb); imageline($image, 0,$yy,$xx,$yy,$color); switch($rr){ case 255: $change = 0; break; case 0: $change = 1; break; } switch($change){ case 1: $rr++; $gg++; $bb++; break; case 0: $rr--; $gg--; $bb--; break; } } ImagePNG($image); ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Habe folgendes gefunden:
Also, imagecolorallocate() will assign a new color EVERY time the function is called, even if the color already exists in the palette:
[..]
So here, imagecolorexact() is useful:
<?php
//see if color already exists
$color = imagecolorexact($pic, $c1, $c2, $c3);
if($color==-1) {
//color does not exist; allocate a new one
$color = imagecolorallocate($pic, $c1, $c2, $c3);
}
?>
Quelle: http://www.php.net/manual/de/function.imagecolorallocate.php#94785
Also: So wie es aussieht, kann dein Image-Objekt nur 256 verschiedene Farben besitzen (mit imagecolorallocate() wird eine Farbe 'registriert'), alle Farben, die doppelt verwendet werden sollen, sollten folglich aus der bereits existierenden Tabelle entnommen werden (mit imagecolorexact()).
Da ich bisher noch nicht mit php-Images gearbeitet habe, weiß ich nicht, wie du eine größere Farbtabelle verwenden kannst, o. ä.
Hierzu solltest du dich noch einmal ausführlicher informieren, wenn es nicht bei Grau-Ton-Bildern bleiben soll...
lg Snapshot -
Super, wusste garnicht, dass imagecolorallocate nur jede Farbe 1 mal kennen darf. Werd mich in nächster Zeit mehr damit beschäftigen.
Danke für deine Antwort, das ist genau das was ich gesucht hatte :)
Nächste mal werd ich mich vorher besser informieren.
Edit: Es sollte erstmal beim Schwarz Weiß bleiben, weil nur ein test, jetzt werd ich allerdings weiter daran "rumspielen" sodass vielleicht noch etwas halbwegs sinnvolles dabei rauskommt:)
Beitrag zuletzt geändert: 2.1.2012 5:19:46 von copynpaste -
Das könnte auch helfen: Beschreibung
Was auch noch interessant sein könnte:$im = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream');
$color = ($r << 16 ) | ($g << 8) | $b;
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage