Problem mit GDLib

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit GDLib

    Hallo,

    mein Problem ist, dass das GDLib (2.0.28 compatible) max. 256 Features zeichnen kann. D.h. maximal 256 Linien oder 256 Kreise etc. pro Bild. Wie kann ich das verändern?

    Gruß aus Bochum
    Download ET-Chat v3.x.x

  • #2
    Wo steht dann das? Betrifft das die GD-Lib oder deren Binding in PHP?

    Kommentar


    • #3
      Es geht um die PHP Extension GDLib. (PHP 5.2.1 GD-Lib 2.0.28) Ich zeichne mehrere Kreise mit PHP und nach 256 Kreisen hört er einfach auf zu zeichnen und es gibt keine Fehlermeldung und gar nichts. Das Image hat danach genau 256 Kreise und das wars.

      Mein Skript sieht so aus:

      PHP-Code:
      <?
      header ("Content-type: image/png");
      $bild = ImageCreate (640, 480);

      //Durchsichtig schalten.
      $nTransparent = imagecolorallocate($bild, 255, 255, 255 );
      imagecolortransparent($bild, $nTransparent );

      $ar=file('koord.txt');

      foreach($ar as $koordpaar){
          list($x, $y) = explode(":", $koordpaar);
          imagearc ($bild,$x,$y,18,18,0,360, ImageColorAllocate ($bild, 50,148,0));
      }

      ImagePNG ($bild);
      imagedestroy ($bild);

      ?>
      und koord.txt:
      Code:
      48:34
      113:58
      139:32
      168:38
      186:37
      199:23
      206:17
      220:21
      217:34
      217:42
      223:49
      ...
      insgesamt über 300 Koordinatenangaben von dennen nur 256 gezeichnet werden.
      Download ET-Chat v3.x.x

      Kommentar


      • #4
        danke an alle, Problem inzwischen gelöst.

        man darf das ImageColorAllocate nicht in eine Schleife packen, denn es darf maximal 256 mal ausgeführt werden.
        Download ET-Chat v3.x.x

        Kommentar


        • #5
          Das hängt damit zusammen, dass imagecreate() ein GIF erzeugt und dessen Farbpalette hat laut Spezifikation eben nur 256 Farben. Das Hinzufügen der 257. Farbe scheitert. Ob das einen PHP-Fehler wirft, weiß ich nicht. Aber den hättest du wegen des PNG-Headers eh nicht gesehen.

          Kommentar


          • #6
            Das wirft keinen Fehler... leider! Denn der PNG-Header unterdrückt keine Errors. Wenn ich z.B. einen Syntaxerror habe, wird er trotz PNG Headers ausgegeben und das Bild nicht gezeichnet. Habe schon alles mit error_reporting(E_ALL) versucht und mit XDebug. Kein Fehler! Der dreht die Schleife und "sagt" kein Wort, hört jedoch einfach auf zu zeichnen. Echt blöd gemacht... Ich habe den Fehler in der GD vermutet... bis ein Bekannter von mir, mir den richtigen Tipp gegeben hat.
            Download ET-Chat v3.x.x

            Kommentar

            Lädt...
            X