Wo ist der Unterschied?

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

  • Wo ist der Unterschied?

    Hallo,

    ich habe zwei Möglichkeiten versucht, ein Dynamisches Bild zu Erzeugen, das erste Beispiel stammt aus ´nem PHP Buch und funktioniert nicht, das Zweite ist aus dem PHP-Manual...kann mir jemand sagen, wo da der Unterschied ist bzw. warum er das eine macht und das andere nicht?

    --------------------
    <?php
    header("Content-type: image/png");
    $image = imagecreate( 200, 200 );
    imagepng($image);
    ?>
    -------------------
    <?php
    header ("Content-type: image/png");
    $im = @ImageCreate (50, 100)
    or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
    $background_color = ImageColorAllocate ($im, 154, 211, 123);
    $text_color = ImageColorAllocate ($im, 233, 14, 91);
    ImageString ($im, 1, 5, 5, "Ein Test-String", $text_color);
    ImagePNG ($im);
    ?>
    -------------------

    Tnx
    Vorsicht, blonder Newbie :-)

  • #2
    Im ersten Beispiel wird über
    ImageCreate() lediglich ein Pointer auf ein neues Bild erzeugt, sonst noch nichts. Der Pointer stellt ein leeres Bild mit der Größe x_size und y_size dar. Alle weiteren Manipulationen mit diesem Bild erfolgen über diesen Pointer, wie es im 2. Beispiel passiert. Nach dem ImageCreate() wird schlußendlich über ImageString () im Bildbereich etwas erzeugt, was zur Anzeige gebracht werden kann.

    http://www.php.net/manual/de/function.imagecreate.php

    Am Ende des zweiten Skriptsamples empfehle ich Dir (nach dem Satetement ImagePNG ($im)) den Befehl
    ImageDestroy($im);
    einzubauen. Dadurch wird der das Bild belegte Speicher wieder freigegeben.

    http://www.php.net/manual/de/function.imagedestroy.php

    Kommentar


    • #3
      Oki, soweit klar....aber warum sagt er beim ersten Beispiel, dass er die Funktion imagecreate() gar nicht kennt?
      MUSS zu der imagecreate()-Funktion die Farbangabe gemacht werden, damit er keine Fehlermeldung ausgibt?

      <b>Fatal error</b>: Call to undefined function: imagecreate() in <b>C:\Eigene Scripts\testimage.php</b> on line <b>3</b><br>

      So sieht die Fehlermeldung aus.

      hm...hab gerade gesehen, dass er auch das erste Beispiel online macht...nur offline nicht...mit OmniHttpd und PHP4.0.3, verstehe ich nicht...liegt es nur an dem @-Zeichen vor der imagecreate() Funktion?

      Trotzdem schonmal Danke :-)
      Vorsicht, blonder Newbie :-)

      Kommentar


      • #4
        Wenn der imagecreate() von Beispiel 1 lokal bei Dir nicht funktioniert, funktioniert auch der imagecreate() von Beispiel2 höchstwahrscheinlich nicht.

        Mit einem @-Zeichen einem Command wird die Fehlerausgabe unterbunden. Deshalb kommt keine entsprechende Fehlermeldung wie "Fatal error: Call to undefined function: imagecreate() in C:\Eigene Scripts\testimage.php on line ..."

        Wenn Du das @ dort wegnimmst, wirst Du vermutlich dieselbe Fehlermeldung bekommen.

        imagecreate() erdfordert die Unterstützung durch die GD-Library. Über den
        <?phpinfo();?>
        kannst Du Dir die PHP-Systemumgebung (Einstellungen, gesetzte Parameter, etc.) anzeigen lassen.
        Dort gibt es einen Abschnitt "GD" wenn GD aktiviert ist, ansonsten fehlt dieser Abschnitt, der in etwa so aussieht:

        gd
        GD Support enabled
        GD Version 2.0 or higher
        FreeType Support enabled
        FreeType Linkage with freetype
        JPG Support enabled
        PNG Support enabled
        WBMP Support enabled

        Wenn Du also GD bei Dir lokal nicht enabled hast, ich denke Du betreibst das ganze unter Windows, qweil Du was von OmniHttpd geschrieben hast, dann kannst Du GD über die php.ini im Windows-Systemdirectory enablen.

        Im Abschnitt ";Windows Extensions" der php.ini steht eine Zeile:
        ;extension=php_gd.dll
        dort nimm den Strichpunkt vorne weg und speicherst das ganze. Im Anschluß daran Restartest Du den OmniHTTPd und nun müßtest Du über phpinfo() den gd-Support "enabled" sehen und Deine beiden Skripte bekommen keine "Call to undefined function: imagecreate()"-Errors mehr.

        Kommentar


        • #5
          Danke für deine ausführliche Antwort :-)

          Du hattest recht,ich hab´s auf nem Win98 laufen. Und gd war disabled bzw. habs auch wieder disabled...es funktioniert nicht...er versucht zwar die entsprechende Datei zu laden, bleibt aber bei ca. 50% hängen...und rien na vas plus
          Wenn ich es disable zeigt er mir die Dateien sofort an.

          Gibt es vielleicht noch ´ne DAU-freundliche Alternative zum Omni ?

          LG,Zora
          Vorsicht, blonder Newbie :-)

          Kommentar


          • #6
            Apache

            Apache ist welteit mit ca. 57% der am meisten verbreitete Webserver, an zweiter Stelle liegt Microsoft mit ca. 30%:

            Siehe: http://www.netcraft.com/survey/

            Download: http://www.apache.org/dist/httpd/bin...-win32-x86.exe

            http://httpd.apache.org/docs/windows.html

            Tutorials
            http://www.cgi-now.de/wamp.html
            http://www.netzadmin.org/apache.htm

            Mit Windows, Apache, MySQL und PHP hast Du dann eine echte WAMP-Installation

            Kommentar


            • #7
              Ich wollte den ersten der beiden irrtümlich doppelten Einträge löschen, aber leider das funktioniert nicht - sorry!

              Ach ja betreffend DAU. Apache ist in der Konfiguration etwas anders als OmniHTTPd. OmniHTTPd knfiguriertst Du über Dialog-MAsken, Apache über ein config.file, aber keine Angst das bekommst Du hin ...

              Kommentar


              • #8
                Warum benutzt du nicht den Server von:
                http://www.vogelgesang-berlin.de/ser.../winapache.htm

                Ist Apache mit Perl 5.x und PHP 4.x und du kannst dir gleich noch den MySQL-Server runterladen, ist alles vorkonfiguriert muß nur noch gestartet werden.
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Kommentar


                • #9
                  Danke

                  Ich danke euch beiden :-)

                  Werds mal ausprobieren....wird schon klappen.

                  LG,
                  Jessica
                  Vorsicht, blonder Newbie :-)

                  Kommentar


                  • #10
                    Glaub ich auch, dass es klappen wird, falls es Probleme gibt, meldest Dich halt.

                    Noch was hab mich mit der Statistik geirrt

                    Apache ist welteit nicht mit ca. 57% sondern mit 64% der am meisten verbreitete Webserver, an zweiter Stelle liegt Microsoft nicht mit ca. 30% sondern 26%:
                    http://www.securityspace.com/s_surve...112/index.html

                    Sorry

                    Kommentar


                    • #11
                      *lach
                      macht ja nix...brauchst dich doch nicht zu entschuldigen...ausser es wäre andersrum gewesen :-)


                      LG,
                      Zora (die fleissig Apache etc. am Downloaden ist :-) )
                      Vorsicht, blonder Newbie :-)

                      Kommentar


                      • #12
                        sooo....hab den DAU-Status gerade abgelegt *lach

                        Es klappt wie am Schnürchen...bis jetzt...vielleicht lässt sich Win ja noch was nettes einfallen, um mich zu ärgern *g

                        Hatte heute noch keinen Blue Screen....kommt mir verdächtig vor :-)

                        Also vielen Dank nochmal


                        LG,
                        Zora (die jetzt Dynamische Bilder im Akkord erzeugt :-))
                        Vorsicht, blonder Newbie :-)

                        Kommentar


                        • #13
                          Gratulation

                          Kommentar

                          Lädt...
                          X