kostenloser Webspace werbefrei: lima-city


PHP Image - Farbverlauf

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    copynpaste

    Kostenloser Webspace von copynpaste

    copynpaste hat kostenlosen Webspace.

    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);
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    copynpaste

    Kostenloser Webspace von copynpaste

    copynpaste hat kostenlosen Webspace.

    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
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Das könnte auch helfen: Beschreibung
    $im = @imagecreatetruecolor(120, 20)
          or die('Cannot Initialize new GD image stream');
    Was auch noch interessant sein könnte:
    $color = ($r << 16 ) | ($g << 8) | $b;
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!