Imagecreate problem!

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

  • Imagecreate problem!

    Hallo allerseits,

    Ich bin ein Neuling in Php. Ich habe ein Problem beim Lernen von Php.

    Ich habe ein Beispiel aus einem Buch abgeschrieben und wollte sehen, wie php ein jpeg Bild zeichnet. In dem Programm werden Funkctionen wie

    imagecreate
    imagecollorallocate
    imagefontwidth
    usw.

    verwendet.

    Aber zur Laufzeit kriege ich folgende Meldung:

    Fatal error: Call to undefined function: imagefontwidth()
    usw.

    Anscheint kennt Php4 solche Funktionen nicht. Aber in Online-Manual stehen alle als Standardfunktionen. Was ist hier falsch?
    Ich danke Euch im voraus.

    Php_fan

  • #2
    Hmm, laut dem PHP Manual gehoert die Funktion sogar schon zu PHP 3 ...

    http://www.php.net/manual/de/functio...efontwidth.php

    Ist auf deinem Server (bzw. Provider) die PHP GD-Library aktiviert ?

    Kommentar


    • #3
      hast du in der PHP.ini die GD-Extension aktiviert ???

      gruss

      Kommentar


      • #4
        Nicht alles was in der Doku steht muß auch aktiviert sein.

        Schreib' mal ein kurzes Script:

        PHP-Code:
        <?php
        phpinfo
        ();
        ?>
        speichere das als info.php im Root deines Hosts ... ruf' es auf ... und schau' nach was in der Tabelle GD steht ... oder erstmal ob die überhaupt vorhanden ist ... würde ich mal bezweifeln ...
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Ich danke Euch alle.

          Die GD extenssion war bei mir nicht aktiviert.

          Jetzt habe ich in php.ini einen Eintrag eingefügt:

          extension=extension/php_gd.dll

          Und phpinfo() liefert folgende Meldung:

          gd
          GD Support enabled
          GD Version 1.6.2 or higher
          FreeType Support enabled
          FreeType Linkage with TTF library
          JPG Support enabled
          PNG Support enabled
          WBMP Support enabled

          Aber das Beispielprogramm ist zwar gelaufen aber zeigt nichts an (Kein Ergebnis)!

          source code vom Beispielprogramm ist:

          imagechar.php

          <?
          $maxx=150; $maxy=100; $mx=$maxx-1; $my=$maxy-1;
          $mmx=$mx /2; $mmy=$my/2;
          $fname='imagechar'; $font=4;
          $fcx=$mmx-imagefontwidth($font)*strlen($fname)/2;
          $fcy=$mmy-imagefontheight($font)/2;
          $img = imagecreate($maxx,$maxy);
          $bg = imagecolorallocate($img,255,255,255);
          $schwarz = imagecolorallocate($img,0,0,0);
          imagestring($img,$font,$fcx,$fcy,$fname,$schwarz);
          //
          imagechar($img,$font,3,3,"W",$schwarz);
          //
          header("Content-Type: image/jpeg");
          imagejpeg($img,$fname.'.jpeg');
          ?>

          Die Frage ist ob das Programm nicht in Ordnung ist oder Php GD noch nicht vollständig konfiguriert ist?

          Php_fan

          Kommentar


          • #6
            also das bild wird bei mir erzeugt, aber nicht richtig angezeigt, der Pfad oder so scheint nicht zu stimmen.

            teste mal kurz das Skript hier, das funktioniert bei mit komplett:

            PHP-Code:
            <?
            $stellen = 5;
            @$counter = file("counter.txt");
            $gesamtzaehler = chop($counter[0]);
            ++$gesamtzaehler;
            $rfile = fopen("counter.txt", "w");
            fwrite($rfile, $gesamtzaehler);
            fclose($rfile);
            header ("Content-type: image/png");
            $x = $stellen*7;
            $im = @ImageCreate (4+$x, 16);
            for ($i=0;$i<$stellen-strlen(intval($gesamtzaehler));++$i) $gesamtzaehler = "0".$gesamtzaehler;
            $background_color = ImageColorAllocate ($im, 0, 0, 0);
            $text_color = ImageColorAllocate ($im, 255, 220, 80);
            ImageString ($im, 3, 2, 1, $gesamtzaehler, $text_color);
            ImagePNG ($im);
            ?>
            gruss

            Kommentar


            • #7
              Das Problem ist die Codezeile:

              imagejpeg($img,$fname.'.jpeg');

              wenn Du 'nen Dateinamen angibst versucht PHP die Jpeg-Datei $fname.".jpeg" zu erzeugen ... laß den Dateinamen weg ... dann wird das Jpeg an stdout geschickt ... also ausgegeben.

              imagejpeg($img);

              ist in Morti's Beispiel auch so zu sehen ... nur halt mit PNG.
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Prima!
                Jetzt funktioniert alles. Ich danke euch!
                Morti, hat dein Name eine Bedeutung oder einen kulturellen Hintergrund? Zum Aussprechen ist nicht einfach.

                Php_fan

                Kommentar

                Lädt...
                X