imagerotate() liefert kryptisches Ergebnis

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

  • imagerotate() liefert kryptisches Ergebnis

    Hallo

    Die Funktion imagerotate() funktioniert bei mir nicht so, wie sie soll.

    Hier der Abschnitt, der dafür verantwortlich ist:
    PHP-Code:
    if ($action == "rotate"){
            
    header ("Content-type: image/jpeg");
            require_once(
    'includes/config.inc.php');
            
    $uploaddir $config['upload']['dir'];
                
            
    $image $uploaddir.$_SESSION['upload_image'];
            
    $source imagecreatefromjpeg($image);
            
    $grau   ImageColorAllocate ($source220220220);
            
    imagejpeg(imagerotate($source,90,$grau));
            
    #imagejpeg($source);
        

    Anstatt mir das Bild gedreht anzuzeigen, bekommme ich etliche Seiten mit kryptischen Zeichen

    Hier der Anfang:
    ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ6o"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢
    Kann mir jemand sagen, wo der Fehler in meinem Skript ist!?

    In $source = imagecreatefromjpeg($image); hab ich das $image auch schon durch eine statische Angabe ausgetauscht, um sicherzugehen, daß die Variablenübergabe funktioniert, aber das Problem besteht weiterhin .

    Danke

  • #2
    header('Content-Type: image/jpeg');
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Original geschrieben von Titus
      header('Content-Type: image/jpeg');
      das hat nix geändert :/

      Kommentar


      • #4
        Aus dem Man:
        Code:
        int imagejpeg ( int im [, string filename [, int quality]] )
        ImageJPEG() erzeugt die Datei filename im JPEG-Format aus dem Zeiger 
        auf im. Das Argument im wurde ihnen vorher durch den Aufruf der Funktion ImageCreate() mitgeteilt.
        PHP-Code:
        imagejpeg(imagerotate($source,90,$grau)); 
        In deinem Aufruf übergibst du aber nicht den "Zeiger" auf das Bild, sondern bestenfalls den Inhalt. Das erste Argument für imagejpg() muss der Zeiger sein.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          sorry, aber versteh ich gerade nicht.

          im php manual steht folgendes Beispiel bei imagerotate

          PHP-Code:
          // File and rotation
          $filename 'test.jpg';
          $degrees 180;

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

          // Load
          $source imagecreatefromjpeg($filename);

          // Rotate
          $rotate imagerotate($source$degrees0);

          // Output
          imagejpeg($rotate); 
          mein Beispiel ist doch genau das selbe...

          lustigerweise hab ich eben den Code mal in mein Programm übernommen, $filename angepasst und getestet, aber es tritt der selbe Fehler auf.
          Also irgendwas haut da eventuell mit meinen Einstellungen nicht hin!?

          Kommentar


          • #6
            Original geschrieben von jahlives
            In deinem Aufruf übergibst du aber nicht den "Zeiger" auf das Bild, sondern bestenfalls den Inhalt. Das erste Argument für imagejpg() muss der Zeiger sein.
            und genau den liefert imagerotate ja als rückgabewert.


            @Boneman: du rufst das bild aber schon "einzeln" auf - und versuchst nicht etwa, die bilddaten zusammen mit HTML-code auszugeben ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Original geschrieben von wahsaga
              @Boneman: du rufst das bild aber schon "einzeln" auf - und versuchst nicht etwa, die bilddaten zusammen mit HTML-code auszugeben ...?
              bin mir nicht sicher, ob ich dich richtig verstanden habe, aber eigentlich nicht.

              Die if-Schleife sieht bei mir jetzt so aus:
              PHP-Code:
              if ($action == "rotate"){
                      
              // File and rotation
                      
              $filename '1_27_161.jpg';
                      
              $degrees 180;
                      
                      
              // Content type
                      
              header('Content-type: image/jpeg');
                      
                      
              // Load
                      
              $source imagecreatefromjpeg($filename);
                      
                      
              // Rotate
                      
              $rotate imagerotate($source$degrees0);
                      
                      
              // Output
                      
              imagejpeg($rotate);
                  } 
              da ist ja nix mit html-code, oder ich hab deine Frage nicht richtig verstanden...

              Kommentar


              • #8
                du sollst das bild so
                Code:
                <img src="bild.php">
                einbinden.

                wenn das so ist, dann teste mal folgendes:
                PHP-Code:
                //bild1.php
                <?php
                        $filename 
                '1_27_161.jpg';
                        
                $degrees 180;
                        
                        
                // Content type
                        
                header('Content-type: image/jpeg');
                        
                        
                // Load
                        
                $source imagecreatefromjpeg($filename);
                        
                        
                // Rotate
                        
                $rotate imagerotate($source$degrees0);
                        
                        
                // Output
                        
                imagejpeg($rotate);
                ?>

                //bild2.php
                <?php
                        $filename 
                '1_27_161.jpg';
                        
                $degrees 180;
                        
                        
                // Content type
                        //header('Content-type: image/jpeg');
                        
                        // Load
                        
                $source imagecreatefromjpeg($filename);
                        
                        
                // Rotate
                        
                $rotate imagerotate($source$degrees0);
                        
                        
                // Output
                        
                imagejpeg($rotate);
                ?>

                //bild3.php
                <?php
                        $filename 
                '1_27_161.jpg';
                        
                $degrees 180;
                        
                        
                // Content type
                        
                header('Content-type: image/jpeg');
                        
                        
                // Load
                        
                $source imagecreatefromjpeg($filename);
                        
                        
                // Rotate
                        //$rotate = imagerotate($source, $degrees, 0);
                        
                        // Output
                        
                imagejpeg($source);
                ?>
                ^^ mal nacheinander direkt aufrufen. was kommt da raus?
                Kissolino.com

                Kommentar


                • #9
                  *an Kopf klatsch*

                  Jetzt hab ich verstanden auf was ihr hinauswollt

                  Im Nachhinein auch logisch . Hab ja den Bild aufruf im restlichen File auch mit nem img-tag davor.

                  Das erste hat direkt funktioniert.

                  Bei mir sieht das jetzt so aus:
                  PHP-Code:
                  if ($action == "rotate"){        
                          
                  $image $_SESSION['upload_image'];
                          echo 
                  "<img src='rotate.php?file=".$image."'>";        
                      } 
                  und die rotate.php
                  PHP-Code:
                  <?php
                  // File and rotation
                  require_once('includes/config.inc.php');
                  $uploaddir $config['upload']['dir'];

                  $filename =    $uploaddir.$_GET['file'];;
                  $degrees 180;

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

                  // Load
                  $source imagecreatefromjpeg($filename);

                  // Rotate
                  $rotate imagerotate($source$degrees0);

                  // Output
                  imagejpeg($rotate);
                  ?>
                  Werde das jetzt noch entsprechend anpassen:
                  Ich will nämlich nachdem ein Foto hochgeladen wurde, daß dieses angezeigt wird, dann soll man es noch drehen können (aktuelles prob) und anschließend neu abspeichern. Ich hoffe ich stoße da nicht auf neue Probleme.

                  Danke schonmal

                  Kommentar

                  Lädt...
                  X