CreateImageFromJPEG funktioniert, CreateImageFromGIF nicht ?!?

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

  • CreateImageFromJPEG funktioniert, CreateImageFromGIF nicht ?!?

    Hallo,

    habe in meinem Bildbearbeitungsscript (Hochladen & Bearbeiten) ein Fehler!

    Wenn ich ein JPG-Bild hochlade dann wird alles gemacht wie ich es will....
    wenn ich hingegen ein GIF-Bild hochladen tu dann bekomme ich nur ein schwarzes Bild nachdem ich es mit der GD2 bearbeitet habe....

    Ich habe folgendes im Script:


    Code:
     
    $type=jpg";
    
    $dim = getimagesize("$path");
    
    $src = @ImageCreateFromJPEG($upload_dir."/".$countpic.".jpg");
    if(!$src)
    {
        ImageCreateFromGIF($upload_dir."/".$countpic.".jpg");
        $type="gif";
    }
    
    $dest = @imagecreatetruecolor(60, 45)
    	or die("Cannot Initialize new GD image stream");
    
    imagecopyresampled( $dest, $src , 0, 0, 0, 0, 60, 45, $dim[0], $dim[1]);
    
    $dest = UnsharpMask($dest,70,1,4);
    
    if($type=jpg) imagejpeg ($dest , $path);else imagegif ($dest , $path);
    Beim hochladen wird die Datei immer auf die endung .jpg umbenannt.
    Danach wird dann mit diesem Scipt bearbeitet....

    Ich bekomme aber bei Gif ein schwarzes Bild.....

    Kann mir mal jemand kurz sagen wo ich hier was übersehen habe ?

  • #2
    Re: CreateImageFromJPEG funktioniert, CreateImageFromGIF nicht ?!?

    habe in meinem Bildbearbeitungsscript (Hochladen & Bearbeiten) ein Fehler!
    Einen Fehler?
    Du versuchst wohl schon wieder, belustigend zu wirken ...

    Das gepostete Script von einer ziemlich üblen "Qualität".
    PHP-Code:
    $type=jpg"; 
    Dass das so nie und nimmer läuft, da sind wir uns ja wohl einig?
    PHP-Code:
    $dim getimagesize("$path"); 
    Verflucht, wann lernt ihr Lamer endlich mal mit Variablen umzugehen?
    PHP-Code:
    $src = @ImageCreateFromJPEG($upload_dir."/".$countpic.".jpg");
    if(!
    $src)
    {
        
    ImageCreateFromGIF($upload_dir."/".$countpic.".jpg");
        
    $type="gif";

    Bei sowas können sich wohl nur solche Leute nicht an den Kopf packen, die gar keinen (mehr) haben.

    getimagesize liefert dir doch schon Informationen darüber, um welche Art von Bildtyp es sich handelt - also warum zum Geier nutzt du sie nicht, und veranstaltest stattdessen so einen hirnverbrannten Unfug?
    PHP-Code:
    if($type=jpg
    1. Wo hast du die Konstante namens jpg definiert, auf die du hier zugreifst? (Womit wir wieder bei dem Punkt "Leute, die nicht mit Variablen und Strings umgehen können" sind.)
    2. Warum willst du ihren Wert der Variablen $typ zuweisen?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      $dim = getimagesize("$path");

      Wieso ? Bei PHP weis man nie ob er in einer Funktion ein String oder sonstiges benötigt und daher habe ich es eben als string übergeben, wo ist das Problem ?

      Übrigens habe ich das genauso aus einem Tutorial das ich im Inet gefunden habe.......


      Zu den anderen Dingen:

      das es so nicht geht ("jpg) ist schon klar. Auch ist $type=jpg eigentlich $type="jpg"...aber beim abändern des Codes oder beim abschreiben unterlaufen jedem mal Fehler....

      Und hier den ganzen Code anzugeben wäre Platzverschwendung.....und interessiert auch niemanden was ich 'dazuwischen' für Kommentare und sonstiges habe......

      Code:
      $src = @ImageCreateFromJPEG($upload_dir."/".$countpic.".jpg");
      if(!$src)
      {
          ImageCreateFromGIF($upload_dir."/".$countpic.".jpg");
          $type="gif";
      }
      Wo ist hier das Problem ?

      Ich habe in der Funktion eben eine Pfadübergabe und ein Index welches JPG-Bild grade gemeint ist......wo ist hier das Problem ?

      Und diese Sachen laufen alle wunderbar...aber mein GIF-Bild ist immer noch schwarz........dazu hast du nichts zu sagen ?
      Das war aber die Frage.........

      Kommentar


      • #4
        Original geschrieben von Master0Blicker
        Wieso ?
        Weil es absoluter Nonsense ist
        Bei PHP weis man nie ob er in einer Funktion ein String oder sonstiges benötigt
        Das weißt du vielleicht nicht - jemand, der etwas mehr blickt als 0, schaut vielleicht mal ins Manual, und sieht da, was die Funktion als Parameter erwartet.
        und daher habe ich es eben als string übergeben, wo ist das Problem ?
        Wenn da irgendwas drinsteht, mit dem getimagesize was anfangen kann - nämlich ein Dateiname - dann dürfte der wohl eh schon ein String sein (obwohl, als Dateinamen ausschließlich Ziffern ohne Punkt und Endung zu benutzen, wäre dir vermutlich auch noch zuzutrauen).
        Ich habe in der Funktion eben eine Pfadübergabe und ein Index welches JPG-Bild grade gemeint ist......wo ist hier das Problem ?
        Es ist ausgemachter Schwachsinn.
        Wieso "prüfst" du den Typ deines Bildes dadurch, dass du die Funktion ImageCreateFromJPEG im Zweifelsfalle auf einen Fehler laufen lässt - so etwas hirnverbranntes nennst du doch wohl hoffentlich nicht "programmieren"?
        Nochmal: getimagesize liefert dir bereits die Info, um welche Art von Grafiktyp es sich handelt - also benutze sie auch.
        aber mein GIF-Bild ist immer noch schwarz........dazu hast du nichts zu sagen ?
        Doch, das habe ich bereits.
        Und wenn du meine Antwort nicht nur überflogen, sondern darüber nachgedacht hättest, hättest du eigentlich schon drauf kommen müssen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          @wahsaga

          "getimagesize liefert dir doch schon Informationen darüber, um welche Art von Bildtyp"

          hab das leider noch nicht gewusst gehabt....hab das so aus dem Forum / Tutorial übernommen gehabt.........
          Manche Dinge hebe ich mir für später auf um es zu 'studieren'....

          Nun gut, egal jetzt.....jetzt weis ich es ja.


          Aber das Script kennst du ja jetzt schonmal so weit.....weist du an was das liegen könnte das bei GIF-Bildern meine Bilder schwarz bleiben ?

          Kommentar


          • #6
            @wahsaga

            Ups, zur gleichen Zeit geschrieben.......

            Irgendwie habe ich das Gefühl du würdest mirgegenüber feindselig sein obwohl mir nicht bewusst ist weshalb.........


            Und mein Programier-Stil ist besser, nur eben nicht bei neuen Programiersprachen die ich erst lerne und dauernd was 'flicken' muss und nachbessern muss........da würde es ja länger dauern das schön hinzubekommen als funktional.........


            "Wieso "prüfst" du den Typ deines Bildes dadurch, dass du die Funktion ImageCreateFromJPEG im Zweifelsfalle auf einen Fehler laufen lässt "

            Ist zwar nicht schön, aber das habe ich HEUTE aus dem INET GENAUSO herausgenommen. Habe in Google die Begriffe ingegeben und auf einer Tut-Seite stand das GENAU SO...........

            Und woher zum Teufel weis ich das GetImageSize das auch zurückliefert ? Size->Grösse.....da kommt man erst gar nicht auf die Idee da nachzuschauen......und Google hat mir da eben anderst 'geholfen'.....

            Kommentar


            • #7
              Original geschrieben von Master0Blicker
              Irgendwie habe ich das Gefühl du würdest mirgegenüber feindselig sein obwohl mir nicht bewusst ist weshalb.........
              Na ja, dass du deinem Nick für meinen Geschmack ein bisschen zu viel Ehre machst, erwähnte ich ja schon mal.
              Und auf Dauer ist es ermüdend zu sehen, dass jemand offenbar recht wenig Fortschritte beim selbstständigen Denken macht, und immer noch seine eigentlich ziemlich trivialen Probleme vom Forum gelöst haben will.
              Ist zwar nicht schön, aber das habe ich HEUTE aus dem INET GENAUSO herausgenommen. Habe in Google die Begriffe ingegeben und auf einer Tut-Seite stand das GENAU SO...........
              Und du glaubst, durch kritikloses und vollkommen unreflektiertes Übernehmen von Code, der auf irgendwelchen Seiten im www steht, verbessern sich deine Kenntnisse in PHP ...?

              Wenn ich mir schon etwas aus dem www suche - dann sollte ich doch wenigstens versuchen zu verstehen, was da gemacht wird und warum. Und wenn du das getan hättest, hätte dir eigentlich auch auffallen sollen, dass es ziemlicher Unfug ist (mit den Progammierkenntnissen, die du in anderen Sprachen ja haben willst).

              Und woher zum Teufel weis ich das GetImageSize das auch zurückliefert ?
              Aus dem Manual natürlich.
              Size->Grösse.....da kommt man erst gar nicht auf die Idee da nachzuschauen......
              Komme bitte zukünftig immer auf die "Idee", zuerst mal im Manual nachzuschauen, was Funktionen eigentlich machen - bevor du sie einsetzt.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                @wahsaga

                Ich weis jetzt nicht ob wir zu arg Off-Topic sind, aber:

                Ich nehme Code aus dem Forum eigentlich schon so wie er ist. Die vertrautheit kommt von selber mit der Zeit mit den verschiedenen Funktionen.....
                ich weis nicht wo du dein Wissen her hast, aber wenn du das einfach so wusstest elleine durch das lesen und nicht wie ich lesen & probieren & erfahrung, dann ist das ja wirklich richtig unheimlich...


                Aber nun gut, egal.....habe ich dir gesagt das ich erst 5 monate PHP UND HTML kann ?
                Hast du auch meine Seite gesehen ? Die kann echt viel.....da könnten isch andere glatt ein Stückchen abschneiden davon....

                Und alles was drinnen ist ist schön und sauber, bis auf die Sachen die ich erst in letzter Zeit eingebaut habe bis ich eine Datei komplett habe und diese 'ordne'...

                Aber egal jetzt, lassen wir das ich kann das, du das, mein Vater ist besser als deiner usw......
                entweder du kannst mir weiterhelfen oder lass es bleiben. Was schade ist aber besser für deine UND meine Nerven......

                Nichtsdestotrotz: danke für die bisherige Hilfe.....

                Kommentar


                • #9
                  Original geschrieben von Master0Blicker
                  entweder du kannst mir weiterhelfen
                  Hab ich das immer noch nicht ...?

                  <Zaunpfahl>
                  Schau dir den letzten Satz meines ersten Postings doch noch mal an. Hint: Da habe ich nicht versehentlich etwas kursiv formatiert ...
                  <Zaunpfahl>


                  Wenn das dein Problem noch nicht lösen sollte (langsam mal einsetzendes Verständnis des Hinweises vorausgesetzt), dann liegt das Problem vielleicht noch woanders - hier käme dann wieder ein RTFM ins Spiel :-)
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    @wahsaga

                    Du hättest echt Adventure-Spiele-Programmierer werden sollen...

                    Aber ich denke du willst mich darauf hinweisen das ich da nicht vergleiche sondern zuweise....und in der Tat, das tue ich wirklich....

                    Nun habe ich den Code aber geändert.
                    Ich nehme den 2. Index des GetSizeImage-Rückgabearrays um auf den Typ abzufragen und es ist nun keine Zuweisung mehr sondern ein vergleich.....

                    Mein Bild ist leider immer noch schwarz.....

                    Aber nur ao am Rande:

                    Ich benutze exakt an 2 Stellen explizite Funktionen für die jeweiligen Datentypen. Der Rest ist gleich......

                    Sind
                    imagecreatetruecolor
                    imagecopyresampled
                    und
                    UnsharpMask

                    eigentlich Typen-unabhängig ?

                    Also normalerweise müsste ich als Ergebnis jeweils entweder GIF oder JPG-Dateien haben, jenachdem was ich hochgeladen habe.
                    Es ist doch für den Webbroser egal welche Endung das Bild hat, oder irre ich mich da ? Weil dei Endung JPG haben am Ende alle Dateien bei mir....

                    Aber normalerweise geht das doch das eine GIF-Datei umbenannt werden kann in JPG und sie trotzdem weiterhin voll funktional ist......hier dann auch ?

                    Kommentar


                    • #11
                      Original geschrieben von Master0Blicker
                      Aber ich denke du willst mich darauf hinweisen das ich da nicht vergleiche sondern zuweise....und in der Tat, das tue ich wirklich....
                      *ding* *dong* *klacker* - da fällt ein Pfund Groschen :-)
                      Es ist doch für den Webbroser egal welche Endung das Bild hat, oder irre ich mich da ? Weil dei Endung JPG haben am Ende alle Dateien bei mir....
                      Nein, da habe ich Zweifel.
                      Anhand der Dateiendung entscheidet dein Webserver, mit welchem MimeType/ContentType-Header er die Ressource ausliefert.
                      Wenn er also auf Grund der Endung .jpg dem Browser sagt, hey Kumpel, jetzt bekommst du von mit ein jpeg-Bild - und dann in wirklichkeit aber gif-Daten folgen, würde es mich nicht wundern, wenn das schiefgeht. Allerdings sollte dir dein Browser dann eher ein Broken Image anzeigen als ein schwarzes Bild ...
                      Sind
                      imagecreatetruecolor
                      imagecopyresampled
                      und
                      UnsharpMask
                      eigentlich Typen-unabhängig ?
                      Die ersten beiden sollten eigentlich keine Probleme machen - aber UnsharpMask ist keine der Standard-PHP-Imagefunktionen, k.A. wo du die her hast und wie du sie überhaupt einbindest?
                      Was passiert denn mit deinem gif, wenn du diesen Funktionsaufruf mal auskommentierst?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Original geschrieben von wahsaga
                        ... aber UnsharpMask ist keine der Standard-PHP-Imagefunktionen, k.A. wo du die her hast und wie du sie überhaupt einbindest?
                        http://vikjavev.no/hovudsida/umtestside.php

                        Soweit ich es überblicken kann, ist diese Funktion schon 'Typen-unabhängig', da sie wie die anderen Imagefunktionen auch auf eine PHP-image-resource arbeitet - ob man nun ein gif, jpg oder sonst was in die Imageresource lädt, sollte eigentlich egal sein
                        Zuletzt geändert von Quetschi; 26.10.2005, 10:39.
                        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                        Schön - etwas Geschichte kann ja nicht schaden.
                        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                        Kommentar


                        • #13
                          @wahsaga

                          Das auskommentieren dieser Funktion hat auch nichts gebracht.
                          Das Bild bleibt schwarz....

                          Ach und noch was.
                          Die Größe der GIF-Bilder beträgt nur zwischen 200-500 Bytes nachdem ich die GD-Funktionen benutzt habe.....da kann ja nichts drinnen enthalten sein....

                          Komisch.....

                          Kommentar


                          • #14
                            Tja, dann ist wohl etwas mehr Debugging im aktuellen Code notwendig ...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              @wahsaga

                              Dem Webbrowser ist es egal welche Dateiendung die bilddatei hat im Fall von GIF oder JPG.....
                              Denn ich habe nun per FTP GIF-Bilder hochgeladen und auch manuell die Endungen unbenannt in JPG -> werden dennoch richtig angezeigt obwohl es die 'falsche' Endung zum Datentyp ist.....

                              Was heisst hier weiteres debuggen ? In 5 Zeilen Quellcode die ich bereist gepostet habe ? Nun, ich werds versuchen...aber ich sehe schwarz im wahrsten Sinne des Wortes....

                              Kommentar

                              Lädt...
                              X