Andy: Farbe eines Punktes ändern

Hi,

wie muss ich das schrieben, dass ich die Farbe eines einzigen Bildpunktes ändern kann, hier gleich mal der Code:

<?php
$im = @ImageCreate (450, 450)
      or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate ($im, 233, 14, 91);
$trans=imagecolortransparent($im,$background_color);

$height=100;
$weight=100;
$x1=100;
$y1=100;
$x2=$x1+$weight;
$y2=$y2+$height;
$x3=$x1+$weight/2;
$y3=$y2+$height/2;
ImageRectangle($im, $x1, $y1, $x2, $y2, $text_color);
ImageGIF ($im);
?>

Der Punkt sollte bei (x3|y3) liegen!

Danke schon im Vorraus!
Andy

  1. Hello,

    was hältst Du denn davon?
    http://de2.php.net/manual/en/function.imagesetpixel.php

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. was hältst Du denn davon?
      http://de2.php.net/manual/en/function.imagesetpixel.php

      Nicht so viel wie von dem:
      http://de2.php.net/manual/de/function.imagesetpixel.php :))
      Danke hab ich nicht gesehen!

      Andy

      1. Hello,

        was hältst Du denn davon?
        http://de2.php.net/manual/en/function.imagesetpixel.php
        Nicht so viel wie von dem:
        http://de2.php.net/manual/de/function.imagesetpixel.php :))
        Danke hab ich nicht gesehen!

        Da nicht für...
        Aber englisch war schon Absicht, weil die deutsche Version oft nicht aktuell ist. Ich würde mir auch immer die Bemerkungen anschauen. Stehen oft ganz witzige Seiteneffekte drin beschrieben. Dann muss man die Fehler nicht erst selber machen.

        Kannst Du denn noch GIF? Wo? Welcher Provider?

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. Kannst Du denn noch GIF? Wo? Welcher Provider?

          1&1 bzw. purtec

          Das hier geht aber nicht:

          imagesetpixel($im, $x3, $y3, $text_color)

          Was ist da falsch?

          Andy
          PS: Im vorigen Code nach den Rechteck eingebaut.

          1. Hello,

            Was ist da falsch?
            PS: Im vorigen Code nach den Rechteck eingebaut.

            Hat denn das Rechteck funktioniert?
            Wenn man Linien malt, kann/muss man ja den Pinsel in Form und Größe vorher festlegen. Vielleicht gilt das für Punkte auch?

            Ich lad es mal auf meinen Teststerver. Der kann auch noch GIF. Mal sehen, was der sagt.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. Hello,

              schade, GIF-Create kann ich auf dem Server auch nicht mehr. Aber PNG geht ja auch.

              Also, das liegt an den Koordinaten, die leider immer von einer einderen Ecke aus zählen. Die Koordinaten für Rectangle zählen anders als die für setpixel. Musst mal ein bisschen mit +/- rumspielen, dann wir es Dir klar.

              Wieso das so ist, weiß ich auch nicht. Die GD_LIB und FreeType haben 'ne Menge solche Macken. Da habe ich mal mit meinem Lehrling tagelang an Korrekturfunktionen für das Drehen von Schriften gesessen. Ganz rausbekommen, wie es geht, haben wir aber leider nicht, nur fast. Nachher haben wir vor Sinus und Cosinus und Verschiebeanteil nicht mehr aus den Augen gucken können:

              Ich habe schon eine Ausgabe:

              <?php  ### bild1.php ###
              $im = @ImageCreate (450, 450)
                    or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
              $background_color = ImageColorAllocate ($im, 255, 255, 255);
              $text_color = ImageColorAllocate ($im, 233, 14, 91);
              $trans=imagecolortransparent($im,$background_color);

              $height=100;
              $width =100;
              $x1=105;
              $y1=105;
              $x2=$x1+$width;
              $y2=$y2-$height;
              $x3=intval($x1+$width/2);
              $y3=intval(-$y2+$height/2);
              ImageRectangle($im, $x1, $y1, $x2, $y2, $text_color);
              imagesetpixel($im, $x3, $y3, $text_color);

              Imagepng ($im);
              ?>

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              1. Hello,

                Fehler gefunden. Hatte ich auch übersehen. Du hattest Dich bei y2 verschrieben. So geht es jetzt:

                <?php
                $im = @ImageCreate (450, 450)
                      or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
                $background_color = ImageColorAllocate ($im, 255, 255, 100);
                $text_color = ImageColorAllocate ($im, 233, 14, 91);

                $trans=imagecolortransparent($im,$background_color);

                $height =100;
                $width  =100;
                $x1=100;
                $y1=100;

                $x2=$x1+$width;
                $y2=$y1+$height;   ## hier war der Fehler

                $x3=intval($x1+$width/2);
                $y3=intval($y1+$height/2);

                ImageRectangle($im, $x1, $y1, $x2, $y2, $text_color);
                imagesetpixel($im, $x3, $y3, $text_color);

                Imagepng ($im);
                ?>

                Liebe Grüße aus http://www.braunschweig.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen