Probleme mit Bildgrößenänderung (GD)

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

  • Probleme mit Bildgrößenänderung (GD)

    Hallo,

    ich habe einige Probleme mit Bildgrößenänderung. Ich mache sowas zum ersten Mal und habe jetzt so einiges probiert. Bildupload (z.B. xyz.jpg) und sowas krieg ich hin, aber

    PHP-Code:
    $dateityp GetImageSize($_FILES['datei']['tmp_name']);

    $breite_alt=$dateityp[0];
    $hoehe_alt=$dateityp[1]; 
    am Anfang funktioniert noch, aber dann weiter

    PHP-Code:
    [...]

          
    $width_new 133;
          
    $height_new 100;
          
    $altes imagecreatefromjpeg($_FILES['file']);  
          
    $new_picture  imagecreatetruecolor($width_new$height_new);                  //neues bild definieren
          

        
    imagecopyresampled($new_picture$altes0000$width_new$height_new$breite_alt$hoehe_alt);  //resample
        
    imagejpeg($new_picture);
        exit;
    [...] 
    funktioniert nicht. Ich will einfach ein Bild beim Hochladen in eine andere Größe bringen (dabei das Original auch hochladen und einen Thumbnail dazu erstellen).
    Übergeben wird das mit POST:

    <form action=\"resize.php\" method=\"post\" enctype=\"multipart/form-data\">

    Den Fehler bekomme ich dann so:

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in (Pfad) on line 56 CREATOR gd-jpeg v1.0 (using IJG JPEG v62)

    Ich könnte mir vorstellen, daß der Fehler in der Zeile imagecreatefromjpeg() liegt, weil er ja irgendwie Probleme mit einer "gültigen Ressource" hat - hab da einiges ausprobiert und herumgegoogelt, aber ich krieg es einfach nicht hin.
    Bestimmt ist das so einfach nur falsch, aber ich hab nichts gefunden, was funktioniert.

    Ich hoffe, das reicht als Info, wenn nicht, bitte fragen - ansonsten würde ich mich über Eure Hilfe freuen!

    Grüße,
    Coni
    Gruß, Coni
    ~~ codito ergo sum - ich code, also bin ich! ~~

  • #2
    [list=1][*]schau dir move_uploaded_file() mal an[*]und dann is_uploaded_file[*]wenn die datei aufm server liegt, verschieb sie aus dem temp verzeichnis in ein anderes verzeichnis und dann arbeite mit der source, danach kannst du es ja wieder löschen[/list=1]
    OffTopic:
    bin derzeit zufaul php-code zu schreiben

    Kommentar


    • #3
      Mit move_upload... eine Datei hochladen ist kein Problem, funktioniert auch einwandfrei.

      Ich will auch keine Datei mehr rumschieben, wenn man es gleich beim Upload richtig machen kann; dieses "imagecopyresampled" erscheint mir am vernünftigsten und damit würde ich es auch gerne lösen...

      Mein Problem liegt wirklich nur in dem Teil des Codes, den ich gepostet habe, das Erstellen eines Thumbs _beim_ Upload.
      Zuletzt geändert von Coniaric; 10.01.2006, 21:38.
      Gruß, Coni
      ~~ codito ergo sum - ich code, also bin ich! ~~

      Kommentar


      • #4
        ich verweise auf den 3. punkt ^^

        wenn du aber unbedingt mit dem temporären file arbeiten möchtest, dann solltest du mit $_FILES['file']['tmp_name'] arbeiten, und nicht vergessen, vorher das temporäre verzeichnis ermitteln, sonst hast du immernoch keine gültige source.
        Zuletzt geändert von reallife; 10.01.2006, 21:41.

        Kommentar


        • #5
          Ich verweise auf meine Änderung im obigen Text! ;-)

          Das andere probier ich mal... sowas ähnliches hab ich aber probiert...frißt er auch nicht.....
          Zuletzt geändert von Coniaric; 10.01.2006, 21:42.
          Gruß, Coni
          ~~ codito ergo sum - ich code, also bin ich! ~~

          Kommentar


          • #6
            Dein error_reporting hast du doch hoffentlich auf E_ALL ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              E_ALL?

              Also jetzt bekomme ich keine Fehlermeldung mehr,
              dafür bekomme ich folgende ausgabe (ohne Echo verwendet zu haben):
              ÿØÿà usw. Geht über eine ganze Strecke - ist das das Bild?

              Abe rgeändert hat er trotzdem nix, weder im Quellordner noch im TMP-Ordner, noch im Zielordner...
              Gruß, Coni
              ~~ codito ergo sum - ich code, also bin ich! ~~

              Kommentar


              • #8
                PHP-Code:
                error_reporting(E_ALL); 
                versuch die ausgabe mal durch ein header zu erzwingen:
                PHP-Code:
                header("Content-type: image/jpeg"); 
                ^^ beachte aber, das du vorher keine ausgabe haben darfst.

                Kommentar


                • #9
                  Da frag ich mich gerade.. wo wird denn eigentlich der Zielordner festgelegt??
                  Bei

                  PHP-Code:
                  move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);

                        
                  $pfad="upload/".$_FILES['datei']['name']; 

                  ging das irgendwie so und hat funktioniert - ich glaub, ich versteh diese GD-Sachen hinten und vorne nicht, sorry!
                  Gruß, Coni
                  ~~ codito ergo sum - ich code, also bin ich! ~~

                  Kommentar


                  • #10
                    Mit dem Header kommt
                    "die Grafik in (Pfad) kann nicht angezeigt werden, weil sie Fehler enthält."

                    Was für eine Grafik? Die muß ich doch erst uploaden!?

                    Mein Script ist so aufgebaut:

                    PHP-Code:
                    <?php
                    header
                    ("Content-type: image/jpeg");
                    error_reporting(E_ALL);

                    HTML-Form

                    If(action==Bildupload//(sinngemäß)
                    {
                       
                    PHP
                    }

                    HTML
                    Gruß, Coni
                    ~~ codito ergo sum - ich code, also bin ich! ~~

                    Kommentar


                    • #11
                      Original geschrieben von Coniaric
                      ich glaub, ich versteh diese GD-Sachen hinten und vorne nicht, sorry!
                      Ja, das kannst du wohl laut sagen ...

                      Wie wär's, wenn du dich erst mal im Manual ein bisschen bzgl. der Funktionen schlau machst, die du da einsetzt?
                      Da frag ich mich gerade.. wo wird denn eigentlich der Zielordner festgelegt??
                      Das fragst du dich jetzt erst ...?
                      Man sollte doch wohl meinen, dass jemand so ein Script erst dann testet, wenn er diese Frage beantworten kann ...


                      Und jetzt noch ein Wink mit dem Zaunpfahl: imagejepg() kann mehr als einen Parameter übergeben bekommen ...
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        *seufz*

                        Danke für Eure Hilfe. Komisch, ich hab schon relativ viel mit PHP
                        gemacht, immer wieder mal recht intensiv, seit 4 oder 5 Jahren,
                        kleine Messenger gebastelt, Bilduploads, Logins,
                        Sachen mit Datenbanken - alles hat mehr oder weniger schnell funktioniert.
                        Klar, ich hab zwischendrin auch oft geflucht, aber ich bin immer
                        irgendwie dahinter gekommen - glaub nicht, daß ich
                        keine Manuals lese!

                        Aber DAS bleibt mir irgendwie verschlossen,
                        da steh ich total auf dem Schlauch.

                        Ich glaube, ich geb es auf, das mit dem PHP liegt wohl doch nicht in meinem Talentbereich. Es sind oft die relativ simplen Dinge dabei,
                        wo ich nicht dahinter komme. Ich suche wie ein Blöder im Netz und wenn ich nicht fündig werde, bzw. nichts funktioniert, frag ich
                        eben im Forum.

                        Tja, dann merke ich, daß von den 100.000 Usern hier 99.999
                        besser programmieren als ich und daß die unteren 1000 es
                        besser lassen sollten.... da gebt Ihr mir sicher recht?

                        Also, bye dann, danke nochmal für Eure Mühen.

                        Grüße,
                        Coni
                        Gruß, Coni
                        ~~ codito ergo sum - ich code, also bin ich! ~~

                        Kommentar


                        • #13
                          Ich glaube, ich geb es auf, das mit dem PHP liegt wohl doch nicht in meinem Talentbereich. Es sind oft die relativ simplen Dinge dabei,
                          wo ich nicht dahinter komme. Ich suche wie ein Blöder im Netz und wenn ich nicht fündig werde, bzw. nichts funktioniert, frag ich
                          eben im Forum.

                          Tja, dann merke ich, daß von den 100.000 Usern hier 99.999
                          besser programmieren als ich und daß die unteren 1000 es
                          besser lassen sollten.... da gebt Ihr mir sicher recht
                          Auf der einen Seite gebe ich Dir Recht, aber auf der anderen Seite würde ich Dir eher Vorschlagen, nicht so schnell aufzugeben. Klar gibt es manchmal Momente in denen man einfach nicht weiterkommt. Hatte ich kürzlich an der Arbeit auch. Mein Modul, was eigentlich bis Silvester bzw. bis zu meinem Urlaub hätte fertig sein sollen, ist aufgrund verschiedener Bugs nicht fertig geworden, was einfach nur daran lag, dass ich mich Tag und Nacht intensiv damit beschäftigt habe und keinen klaren Kopf mehr hatte. Ende vom Lied war dann, das nach meinem Urlaub alles viel schneller sein Ziel gefunden hat.

                          Geh den Fehler nochmal durch, sprich zur Not mit Dir selbst oder schreib es Dir auf ein Blatt Papier auf. Klingt komisch, kann aber helfen.

                          Schau dir das mal an, könnte dir bestimmt weiterhelfen
                          http://www.phpclasses.org/browse/file/5555.html

                          Kommentar

                          Lädt...
                          X