imageCreateFromJPEG -> was ist falsch?

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

  • imageCreateFromJPEG -> was ist falsch?

    Ich habe eine class, die meine fotos verkleinert und speichert.
    Allerdings gab es immer fehler.
    Mir ist aufgfallen, das es bei bildern auftrat, die bearbeitet wurden. Wo zum Beispiel die größe geändert wurde.
    Der fehler macht sich bemerkbar, indem denn kein foto, sondern nur ein schwarzes Bild gespeichert würd.

    Das ist die Fehlermeldung:

    Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: in c:\www\projekt\class\class-hochladen.inc.php on line 174

    Warning: imagecreatefromjpeg(): 'C:\PHP\uploadtemp\php29.tmp' is not a valid JPEG file in c:\www\projekt\class\class-hochladen.inc.php on line 174

    Und das die stelle:
    PHP-Code:
    $source_id imageCreateFromJPEG($b['quelle']); 
    Hatte $source_id mit echo ausgegeben und bei erfolg heißt sie "Resource id #22" und beim fehler kamm nichts.
    Was heißt Resource id #22?
    Und warum bekomme ich ein schwarzes Bild, obwohl es ein JPEG Bild ist???
    Gut geraten ist halb gewußt.

  • #2
    Jetzt geht es, aber ich weiß nicht wie das sein kann.

    Die Bilder hatten alle die endung jpg aber ich habe sie nochmal im bearbeitungsprogramm geöffnet und erneut im jpg gespeichert und dann gingen alle.

    Wie kann das sein, das die Bilder eine jpg endung haben aber keine sind?

    Ich prüfe jetzt immer:
    PHP-Code:
    if ($source_id) {
    echo 
    "ja";
    // code ausführen
    } else {
     echo 
    "no";
    // code abbruch

    Gut geraten ist halb gewußt.

    Kommentar


    • #3
      Wie kann das sein, das die Bilder eine jpg endung haben aber keine sind?
      OffTopic:
      die frage hast du nicht wirklich gestellt, oder?
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4

        Na die Fehlermeldung war ja :Warning: imagecreatefromjpeg(): 'C:\PHP\uploadtemp\php29.tmp' is not a valid JPEG file in c:\www\projekt\class\class-hochladen.inc.php on line 174

        Das heißt das ich kein jpeg datei sein sollte, oder?
        Es hatte aber ne jpg endung.

        Und kann man irgendwie ein png in jpg umwandeln?
        Habe nur jpeg2wbmp und png2wbmp gefunden.
        Gut geraten ist halb gewußt.

        Kommentar


        • #5
          Original geschrieben von martinm79
          Das heißt das ich kein jpeg datei sein sollte, oder?
          Es hatte aber ne jpg endung.

          und wenn man dein foto von martinm79.jpg in martinm79.papst umbenennen würde, dann ziehst du auch gleich nach rom ...?

          Und kann man irgendwie ein png in jpg umwandeln?
          Habe nur jpeg2wbmp und png2wbmp gefunden.
          na welches imagecreatefrom... benutzt du denn derzeit für jpegs?

          wie könnte denn dann die funktion heißen, um aus (engl. "from") PNG-bildern ein bildobjekt zu erzeugen ...?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Original geschrieben von wahsaga

            und wenn man dein foto von martinm79.jpg in martinm79.papst umbenennen würde, dann ziehst du auch gleich nach rom ...?
            Natürlich nicht.
            Also kann man nicht mit der endung prüfen?
            Weil bis jetzt hatte ich das so gemacht:
            PHP-Code:
              function endung_check($bild)
              {
                  
            $teil   explode(".",$_FILES['userfile']['name'][$bild]);
                  return  
            strtolower($teil[1]);  
              } 
            Wäre dann so besser:
            PHP-Code:
            $source_id = @imagecreatefromjpeg($b['quelle']);
            if (isset(
            $source_id)){
                
            // ja es ist ein jpg bild
                // und gleich das bild umwandeln
            }   else {
                
            // nein es ist kein jpg bild

            na welches imagecreatefrom... benutzt du denn derzeit für jpegs?
            imagecreatefromjpeg
            wie könnte denn dann die funktion heißen, um aus (engl. "from") PNG-bildern ein bildobjekt zu erzeugen ...?
            imagecreatefrompng

            Mhh? Denn wende ich es so an:
            PHP-Code:
                  $source_id = @imagecreatefromjpeg($b['quelle']); 
                  if (
            $source_id) {
                      
            $target_id imagecreatetruecolor($neub['nb'],    $neub['nh']);          
                      @
            imagecopyresampled($target_id,   $source_id,0,0,0,0,$neub['nb'], $neub['nh'], $b['ob'],$b['oh']);         
                      @
            imagejpeg ($target_id,   $f['targetfile'],   $this->kompress   );
                  } 
            Nur das ich denn jeweils die eine funktion tausche, und imagejpeg() lasse,und dann erhalte ich aus png ein jpg bild?
            Gut geraten ist halb gewußt.

            Kommentar


            • #7
              Original geschrieben von martinm79
              Also kann man nicht mit der endung prüfen?
              nicht verläßlich.

              getimagesize() bietet sich eher an um herauszufinden, ob es sich um ein mit der GDlib bearbeitbares bild handelt, und wenn ja welchen typs.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Aha... danke.
                Deswegen hatte ich schwerigkeiten, weil ich nur nach der endung ging.
                Und kann ich einfach die function imagecreatefromjpeg() durch imagecreatefrompng() ersetzten und trotzdem ein neues jpg bild erzeugen?
                Gut geraten ist halb gewußt.

                Kommentar


                • #9
                  Original geschrieben von martinm79
                  Und kann ich einfach die function imagecreatefromjpeg() durch imagecreatefrompng() ersetzten und trotzdem ein neues jpg bild erzeugen?
                  ja, theoretisch schon.

                  mit imagecreatfromxy erzeugst du dir aus einem vorhandenen bild erst mal eine bildressource, mit der die GDlib dann arbeiten kann.
                  und als was du das dann wieder ausgibst, ist deine freie entscheidung.

                  nur ein wenig aufpassen, da ja nicht alle bildformate alles können - ein png mit alphatransparenzen oder ein animiertes gif als jpg wieder ausgegeben könnte u.U. seltsame resultate hervorbringen ...
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    mit imagecreatfromxy erzeugst du dir aus einem vorhandenen bild erst mal eine bildressource, mit der die GDlib dann arbeiten kann.
                    und als was du das dann wieder ausgibst, ist deine freie entscheidung.
                    aha, danke.

                    alphatransparenzen

                    Aber ich weiß worauf du hinaus wolltest.
                    Danke für die gute Hilfe.
                    Gut geraten ist halb gewußt.

                    Kommentar

                    Lädt...
                    X