Announcement

Collapse
No announcement yet.

Grafik mit php erzeugen und ausgeben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Grafik mit php erzeugen und ausgeben

    Hallo,
    ich weiss, dass es dazu 1000de Tutorials gibt, aber irgendwie funktioniert das ganze bei mir nicht.

    Wenn ich z.Bsp. folgenden Quellcode verwende, dann wird kein Fehler ausgegeben, aber ein Bild ist auch nicht zu sehen... lediglich das kleine Fenster mit dem roten X drin... weil er kein Bild hat.
    <br>
    Quellcode:<br><br>
    <i>
    <?php
    header ("Content-type: image/png");
    $im = @ImageCreate (50, 100)
    or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
    $background_color = ImageColorAllocate ($im, 155, 255, 255);
    $text_color = ImageColorAllocate ($im, 233, 14, 91);
    ImageString ($im, 1, 5, 5, "Ein Test-String", $text_color);
    ImagePNG ($im);
    ?></i>
    <br><br>
    Wenn ich das "@"-Zeichen vor dem ImageCreate wegnehme kennt er die Funktion nicht mehr. Die "php_gd.dll" ist eingebunden, da ich erst dachte, dass es daran liegt. Doch jetzt gehen mir langsam die Ideen aus. Hab es auch schon auf mehreren Servern probiert, immer das gleiche Ergebnis.
    Wäre schön, wenn Ihr einen kompletten Quellcode hättet, der lauffähig ist...

    MfG

    Daniel

  • #2
    Daß Du keine Fehlermeldung bekommst ist eigentlich normal, Du sagst dem Broser ja, daß er ein Bild darstellen soll, kein Text. Laß den Header mal weg, dann kanns u die Fehlermeldung lesen.<br />
    Das @ untersrückt im Übrigen Fehlerausgaben, wenn er also ohne @ meckert er kennt den Befehl nicht, dann kennt er ihn auch mit @ nicht, nur meckert er nicht mehr.<br />
    Ich würde mal vermuten, daß Du entweder gar keine GD-Lib installiert hast oder eine, die keine PNG kennt

    Comment


    • #3
      Habe es jetzt mal so probiert:

      <i>
      <?php
      header ("Content-type: image/jpeg");
      $im = ImageCreate (50, 100)
      or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
      $background_color = ImageColorAllocate ($im, 155, 255, 255);
      $text_color = ImageColorAllocate ($im, 233, 14, 91);
      ImageString ($im, 1, 5, 5, "Ein Test-String", $text_color);
      ImageJPG ($im);
      ?>
      </i>

      Immer noch das gleiche Ergebnis.
      Die GD-Lib ist doch auch in der zlib enthalten oder?
      Ich habe auf jeden Fall folgende Extensions geladen:

      extension=php_gd.dll
      extension=php_pdf.dll
      extension=php_pgsql.dll
      extension=php_zlib.dl

      Comment


      • #4
        Nein, die GD-Lib ist nicht in der zlib enthalten. Versuche mal die php_gd2.dll einzubinden.<br />
        Auf jeden Fall solltest Du aber zum debuggen den header weglassen um an Fehlermeldungen zu kommen und teste auch mal mit JPEG und GIF, ebenso erzeuge mal mit ImageCreateTruecolor

        Comment


        • #5
          Schon geschehen,
          es kommt aber immer noch die Meldung:
          Call to undefined function: imagecreate(

          Comment


          • #6
            Ist denn die Datei php_gd.dll und / oder php_gd2.dll in deinem extension-Verzeichnis vorhanden? Ruf doch mal eine Datei mit folgenden Inhalt auf und suche nach gd:
            <i>
            <?php
            phpinfo();
            ?>
            </i&gt

            Comment


            • #7
              Da findet der nichts...
              Worunter müsste sie denn da stehen?
              Das wird in der php.ini eingerichtet oder? Weil da steht die php_gd2.dll unter extensions und sie ist auch im Verzeichnis vorhanden...

              Comment


              • #8
                Hallo Daniel,

                versuche doch mal ein neues Skript zu erzeugen z.B. mit dem namen phpinfo.php. Das Skript soll folgenden Inhalt haben:
                <pre>&lt;?php
                phpinfo();
                ?&gt;
                </pre>
                Wenn Du das Skript aufrufst, dann wird eine Liste mit allen aktiven extensions und noch viel mehr ausgegeben. Schau einfach nach, ob die GD-Lib hier auftaucht, wenn nicht, dann wurde sie auch nicht geladen. In diesem Fall schau mal im Error-Log des Webservers nach, da müßte dann ein Fehler stehen.

                Gruß
                Richar

                Comment


                • #9
                  > Das wird in der php.ini eingerichtet oder?

                  Ja.

                  > Weil da steht die php_gd2.dll unter extensions und sie ist auch im Verzeichnis vorhanden....

                  Die Zeile beginnt aber nicht zufällig mit einem Semikolon (? Das würde nämlich bedeuten, dass die Zeile auskommentiert ist und darum nicht interpretiert wird

                  Comment


                  • #10
                    Ok,
                    habe es jetzt geschafft die GD zu laden:
                    <br><i>
                    gd
                    GD Support enabled
                    GD Version bundled (2.0.22 compatible)
                    FreeType Support enabled
                    FreeType Linkage with freetype
                    GIF Read Support enabled
                    JPG Support enabled
                    PNG Support enabled
                    WBMP Support enabled
                    XBM Support enabled
                    </i><br><br>
                    Jetzt gibt er mir bei folgenden Quelltext immer noch einen Fehler aus:
                    <br><br><i>
                    <?php
                    header ("Content-type: image/jpeg");
                    $im = ImageCreate (50, 100)
                    or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
                    $background_color = ImageColorAllocate ($im, 155, 255, 255);
                    $text_color = ImageColorAllocate ($im, 233, 14, 91);
                    ImageString ($im, 1, 5, 5, "Ein Test-String", $text_color);
                    ImageJPG ($im);
                    ?></i><br><br>
                    Der Fehler lautet:<br><i>
                    Die Grafik "http://127.0.0.1/www/bild5.php" kann nicht angezeigt werden, weil sie Fehler enthält.</i><br><br>
                    Habt ihr noch eine Idee woran es jetzt noch liegen könnte?

                    MfG

                    Daniel Rohrlac

                    Comment


                    • #11
                      Hi Daniel,

                      ändere doch das Skript kurz ab:

                      <pre><?php
                      $im = ImageCreate (50, 100)
                      or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
                      $background_color = ImageColorAllocate ($im, 155, 255, 255);
                      $text_color = ImageColorAllocate ($im, 233, 14, 91);
                      ImageString ($im, 1, 5, 5, "Ein Test-String", $text_color);
                      header ("Content-type: image/jpeg");
                      ImageJPG ($im);
                      ?></pre>

                      Dadurch wird der Content-Type nicht geändert, bis alle Aktionen abgelaufen sind. Wenn Du das Skript mit allen Parametern aufrufst, was gibt es dann an Meldungen?

                      Gruß
                      Richar

                      Comment


                      • #12
                        Wirklich geändert hat sich nichts...
                        es kommt jetzt immer noch die Meldung:<br><br>

                        <i>Die Grafik "http://127.0.0.1/www/bild.php" kann nicht angezeigt werden, weil sie Fehler enthält.</i><br><br>

                        Mach ich vielleicht sonst irgendetwas falsch? Also der Apache mit PHP und GD-Unterstützung läuft. Dann gibt es nur diese eine Datei mit den Inhalt vom Beitrag hiervor.
                        Langsam weiss ich echt nicht mehr was ich noch ausprobieren soll. Bei euch funktioniert die Darstellung von Grafiken

                        Comment


                        • #13
                          Kommentier die Headerzeile mal aus

                          Comment


                          • #14
                            Es klappt!!!
                            Danke an euch alle, die so viel Geduld hatten.

                            Der genaue Inhalt ist nun:
                            <br><br><i>
                            <?php

                            $im = ImageCreate (50, 100)

                            or die ("Kann keinen neuen GD-Bild-Stream erzeugen");

                            $background_color = ImageColorAllocate ($im, 155, 255, 255);

                            $text_color = ImageColorAllocate ($im, 233, 14, 91);

                            ImageString ($im, 1, 5, 5, "Ein Test-String", $text_color);

                            header ("Content-type: image/jpeg");

                            ImageJPEG ($im);

                            ?><br><br>

                            Unten fehlte nur ein "E"^^

                            MfG

                            Daniel Rohrlac

                            Comment

                            Working...
                            X