+ Antworten
Ergebnis 1 bis 12 von 12

Thema: image resizen nach upload

  1. #1
    TP-Junior D.0.C. macht alles soweit korrekt
    Registriert seit
    Apr 2006
    Ort
    Berlin
    Beiträge
    13

    image resizen nach upload

    Hallo,

    ich hab mal eine kleine Frage die viele von euch bestimmt schnell beantworten können. Also bei meinem Script wird ein Bild ($_FILES['file']) hochgeladen und danach soll es auf 120x300 px verkleinert/vergrößert werden. Wie macht dann das? Am besten eine kleine und einfache lösung.

    Und wenn ich schonmal dabei bin, gibt es eine Möglichkeit ein Wasserzeichen uaf die Bilder zu machen?

    Danke schonmal für die Antworten!

    MFG

  2. #2
    TP-Senior December ist auf einem guten Weg Avatar von December
    Registriert seit
    Dec 2003
    Ort
    Chemnitz
    Beiträge
    224

  3. #3
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    Hatte mal nen Script zum Upload mit auto Erzeugung eines Thumbnails, kannst dir ja zerpflücken.
    http://www.traum-projekt.com/forum/5...beitrag11.html
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  4. #4
    TP-Junior D.0.C. macht alles soweit korrekt
    Registriert seit
    Apr 2006
    Ort
    Berlin
    Beiträge
    13
    vielen Dank für eure Hilfe nur irgendwie komme ich einfach nicht weiter. Könnte mir evtl. jemand den Code mal posten? Das wäre echt nett von euch. Also was ich zur Zeit habe:
    - Bild ist hochgeladen und gespeichert
    Was jetzt noch zutun ist:
    - Bild direkt nach upload auf eine feste Breite von 320px und eine dementsprechende variable Höhe skalieren.

    Das mit dem Wasserzeichen ist erstmal nicht sooo wichtig.

    MFG

  5. #5
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    In #3 habe ich dir zwar ein Script gepostet, jedoch fiel mir auf, dass das noch eine Version mit fehlern war.
    Hier dann mal die aktuelle Version.
    Das Script läd einmal das Org hoch und erzeugt ein Thumbnail, wobei man die längste Seite für Hoch- Querformat separat angeben kann.
    Optional kann man dem THumbnail auch noch einen Rahmen geben, so das immer ein quadratisches Bild erzeugt wird.
    Die Kommentare sollten aber alles erklären.
    PHP-Code:
    <?
    // Funktionsablauf Fotoupload
    function uploader($fotofile,$fotofile_name){

        
    //*******************************************
        // Bitte hier die Einstellungen vornehmen
        //*******************************************

        // Rahmen setzen? true = ja  ||  false = nein
        
    $rahmen_aktiv false;

        
    // Angabe der Rahmendicke in px (an der längsten Kante)
        
    $rahmen '10';

        
    // Angebae der Rahmenfarbe (in RGB-Werten!!)
        
    $farbe_r '128';
        
    $farbe_g '0';
        
    $farbe_b '0';

        
    // Angaben der Thumbnailgrößen in px
        // Querformat:
        
    $thumb_max_x '120';
        
    // Hochformat:
        
    $thumb_max_y '120';

        
    // Zielordner. Wenn hier nichts angegene ist, dann ist der Speicherort des Scriptes der Zielordner.
        // Können auch identisch sein, da die Dateinamen eh einen entsprechenden Zusatz erhalten!
        // Zielordner für die Originalfotos (Ordner muss CHMOD 666 haben !!)
        
    $zielorg "bilder/"
        
    // Zielordner für die Thumbnails (Ordner muss CHMOD 666 haben !!)
        
    $zielthm "bilder/thm/"

        
    //*******************************************
        // ENDE DER EDITIERUNG
        //*******************************************
        

        // Angabe Dateiendung
        
    $datei_ende ".jpg"

        
    // Org.-Foto speichern
        
    $zielorg .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_org" $datei_ende;
        if(
    file_exists($zielorg)){
            return 
    $upload_log "Die Datei $fotofile_name exsitiert schon auf dem Server!";
            
        }
        if(!
    move_uploaded_file($fotofile$zielorg)){
            return 
    $upload_log "Ein Fehler beim Kopieren der Datei $fotofile_name ist aufgetreten!";
        }

        
    // Angaben für das Thumbnail
        
    $zielthm .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_thm" $datei_ende;

        
    $large_img $zielorg;
        
    $large_img ImageCreateFromJPEG($large_img);
        
    $size getimagesize($zielorg);
        
    $width_max $size[0];
        
    $height_max $size[1];
        
    $test_max $width_max/$height_max;
        if(
    $test_max 1){
            if(
    $width_max $thumb_max_x){
                
    $width_max $thumb_max_x;
                
    $height_max $thumb_max_x $test_max;
                
    $rahmen_aktiv== true $image_max imagecreatetruecolor($width_max+($rahmen*2),$width_max+($rahmen*2)) :$image_max imagecreatetruecolor($width_max,$height_max);
                
    $rand1 $rahmen;
                
    $rand2 = (($width_max+($rahmen*2))/2)-($height_max/2);
            }
        }else{
            if(
    $height_max $thumb_max_y){
                
    $height_max $thumb_max_y;
                
    $width_max $thumb_max_y $test_max;
                
    $rahmen_aktiv== true $image_max imagecreatetruecolor($height_max+($rahmen*2),$height_max+($rahmen*2)) : $image_max imagecreatetruecolor($width_max,$height_max);
                
    $rand1 = (($height_max+($rahmen*2))/2)-($width_max/2);
                
    $rand2 $rahmen;
            }
        }
        
    $bsrc imagesx($large_img);
        
    $hsrc imagesy($large_img);
        if(
    $rahmen_aktiv == true){
            
    $farbe1 imagecolorallocate($image_max,$farbe_r,$farbe_g,$farbe_b);
            
    imagefilltoborder($image_max,0,0,$farbe1,$farbe1);
        }
        
    $rahmen_aktiv== true ImageCopyResized($image_max,$large_img,$rand1,$rand2,0,0,$width_max,$height_max,$bsrc,$hsrc) : ImageCopyResized($image_max,$large_img,0,0,0,0,$width_max,$height_max,$bsrc,$hsrc);
        
    ImageJPEG($image_max,$zielthm,100);

        return 
    $upload_log "Der Upload der Datei $fotofile_name ist erfolgreich abgeschlossen worden!";
    }

    if(!
    $_GET['action']){
    ?>
    <form name="formular" enctype="multipart/form-data" action="<?=$_SERVER[PHP_SELF];?>?action=upload"" method="post">
    Neues Foto hochladen:&nbsp;&nbsp;<input name="foto" type="file" size="50"><input name="Submit" type="submit" value="eintragen">
    </form>
    <?
    }
    if(
    $_GET['action']==upload){
        
    // So wird die Upload-Funktion aufgerufen. Die Var. kommen über POST vom Formular
        
    $upload uploader($_FILES['foto']['tmp_name'],$_FILES['foto']['name']);
        echo 
    $upload."<br><a href=\"".$_SERVER['PHP_SELF']."\">zur&uuml;ck</a>";
    }
    ?>
    Geändert von webcreate (15.06.2006 um 15:54 Uhr)
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  6. #6
    TP-Junior D.0.C. macht alles soweit korrekt
    Registriert seit
    Apr 2006
    Ort
    Berlin
    Beiträge
    13
    hmmm... also vielen Dank für die Bemühungen aber ich komme damit überhaupt nicht klar. Ich muss dazu sagen, es ist das erste Mal, dass ich mit Grafiken arbeite!

    Das Script von dir ist sehr gut, allerdings kann ich damit nicht viel anfangen. Das mit dem Rahmen ect. brauch ich wirklich nicht. Ich möchte nur, dass mein Foto das in "images/fotos/" liegt auf 320px und auf eine variable Höhe angepasst wird. Das neue Bild kann bzw. soll sogar den gleichen Dateinamen haben wie das Originale, weil ich das Originale sowieso nicht mehr brauche nach dem Upload. Kann mir evtl. einer direkt auf mein Problem einen zugeschnittenden Code posten oder zumindest sagen was ich machen muss?

    Vielen Dank!

  7. #7
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    Also du hast da ein Script, wo alles drin ist, wenn du nun auf www.php.net die Befehle betrachtest, die du nicht kennst, solltest du das hinbekommen.

    Wir helfen gerne, sind aber kein: Mach mal bitte eben Forum.
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  8. #8
    TP-Junior D.0.C. macht alles soweit korrekt
    Registriert seit
    Apr 2006
    Ort
    Berlin
    Beiträge
    13
    Hallo,

    ich habe mich nochmal durch dein Script durchgekämpft. Ich habe es jetzt hinbekommen nur leider gibt es einen Fehler! Und zwar wenn das Bild kleiner ist als meine $thumb_max_x = '320'; und $thumb_max_y = '320'; Werte, dann wird das Bild einfach nicht bearbeitet und er sagt, dass es keine richtige Bildquelle ist. Ist das normal so?

    Hier sind die Fehler:
    Code:
    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 82
    
    Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 83
    
    Warning: imagecreatefromjpeg(images/fotos/CinimoD_1606_thm.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 86
    
    Warning: imagesx(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 88
    
    Warning: imagesy(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 89
    
    Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 90
    
    Warning: imagecopy(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 91
    
    Warning: imagecopy(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 92
    Wobei ab Zeile 86 nicht mehr zu dem Script gehören sondern dort dies mit dem Wasserzeichen ist. Allerdings kann es daran nicht liegen, denn dies macht er bei größeren Bildern.

    Ich hoffe du kannst du mir helfen!

    MFG

  9. #9
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    Ja, das ist normal, wenn man sich mal die if-Bedingungne genau anschaut, sollte einem auch auffallen, warum.
    Ich habe dann einfach mal die if-Anweisungen verändert.
    PHP-Code:
     <?
    // Funktionsablauf Fotoupload
    function uploader($fotofile,$fotofile_name){

        
    //*******************************************
        // Bitte hier die Einstellungen vornehmen
        //*******************************************

        // Rahmen setzen? true = ja  ||  false = nein
        
    $rahmen_aktiv false;

        
    // Angabe der Rahmendicke in px (an der längsten Kante)
        
    $rahmen '10';

        
    // Angebae der Rahmenfarbe (in RGB-Werten!!)
        
    $farbe_r '128';
        
    $farbe_g '0';
        
    $farbe_b '0';

        
    // Angaben der Thumbnailgrößen in px    
        // Querformat:
        
    $thumb_max_x '120';
        
    // Hochformat:
        
    $thumb_max_y '120';

        
    // Zielordner. Wenn hier nichts angegene ist, dann ist der Speicherort des Scriptes der Zielordner.
        // Können auch identisch sein, da die Dateinamen eh einen entsprechenden Zusatz erhalten!
        // Zielordner für die Originalfotos (Ordner muss CHMOD 666 haben !!)
        
    $zielorg "bilder/"
        
    // Zielordner für die Thumbnails (Ordner muss CHMOD 666 haben !!)
        
    $zielthm "bilder/thm/"

        
    //*******************************************
        // ENDE DER EDITIERUNG
        //*******************************************
        

        // Angabe Dateiendung
        
    $datei_ende ".jpg"

        
    // Org.-Foto speichern
        
    $zielorg .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_org" $datei_ende;
        if(
    file_exists($zielorg)){
            return 
    $upload_log "Die Datei $fotofile_name exsitiert schon auf dem Server!";
            
        }
        if(!
    move_uploaded_file($fotofile$zielorg)){
            return 
    $upload_log "Ein Fehler beim Kopieren der Datei $fotofile_name ist aufgetreten!";
        }

        
    // Angaben für das Thumbnail
        
    $zielthm .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_thm" $datei_ende;

        
    $large_img $zielorg;
        
    $large_img ImageCreateFromJPEG($large_img);
        
    $size getimagesize($zielorg);
        
    $width_max $size[0];
        
    $height_max $size[1];
        
    $test_max $width_max/$height_max;
        if(
    $test_max 1){
            if(
    $width_max $thumb_max_x){
                
    $width_max $thumb_max_x;
                
    $height_max $thumb_max_x $test_max;
            }
                
    $rahmen_aktiv== true $image_max imagecreatetruecolor($width_max+($rahmen*2),$width_max+($rahmen*2)) :$image_max imagecreatetruecolor($width_max,$height_max);
                
    $rand1 $rahmen;
                
    $rand2 = (($width_max+($rahmen*2))/2)-($height_max/2);
        }else{
            if(
    $height_max $thumb_max_y){
                
    $height_max $thumb_max_y;
                
    $width_max $thumb_max_y $test_max;
            }
                
    $rahmen_aktiv== true $image_max imagecreatetruecolor($height_max+($rahmen*2),$height_max+($rahmen*2)) : $image_max imagecreatetruecolor($width_max,$height_max);
                
    $rand1 = (($height_max+($rahmen*2))/2)-($width_max/2);
                
    $rand2 $rahmen;
        }
        
    $bsrc imagesx($large_img);
        
    $hsrc imagesy($large_img);
        if(
    $rahmen_aktiv == true){
            
    $farbe1 imagecolorallocate($image_max,$farbe_r,$farbe_g,$farbe_b);
            
    imagefilltoborder($image_max,0,0,$farbe1,$farbe1);
        }
        
    $rahmen_aktiv== true ImageCopyResized($image_max,$large_img,$rand1,$rand2,0,0,$width_max,$height_max,$bsrc,$hsrc) : ImageCopyResized($image_max,$large_img,0,0,0,0,$width_max,$height_max,$bsrc,$hsrc);
        
    ImageJPEG($image_max,$zielthm,100);

        return 
    $upload_log "Der Upload der Datei $fotofile_name ist erfolgreich abgeschlossen worden!";
    }

    if(!
    $_GET['action']){
    ?>
    <form name="formular" enctype="multipart/form-data" action="<?=$_SERVER[PHP_SELF];?>?action=upload"" method="post">
    Neues Foto hochladen:&nbsp;&nbsp;<input name="foto" type="file" size="50"><input name="Submit" type="submit" value="eintragen">
    </form>
    <?
    }
    if(
    $_GET['action']==upload){
        
    // So wird die Upload-Funktion aufgerufen. Die Var. kommen über POST vom Formular
        
    $upload uploader($_FILES['foto']['tmp_name'],$_FILES['foto']['name']);
        echo 
    $upload."<br><a href=\"".$_SERVER['PHP_SELF']."\">zur&uuml;ck</a>";
    }
    ?>
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  10. #10
    TP-Junior D.0.C. macht alles soweit korrekt
    Registriert seit
    Apr 2006
    Ort
    Berlin
    Beiträge
    13
    ich danke dir viel mals!!! Es klappt jetzt alles wunderbar!

  11. #11
    TP-Member Schinny macht alles soweit korrekt
    Registriert seit
    Jan 2003
    Ort
    Frankfurt / Main
    Beiträge
    33
    Hallo,

    habe mir auch mal erlaubt ein wenig mit dem Script rumzuspielen - vielen Dank dafür, klappt wirklich prima.

    Ich würde nun gerne noch dem "großen Bild" maximale Werte für Breite und Höhe mitgeben. Ist mein Denkansatz richtig das ich erstmal das Original auf den Server laden muss, dann das Bild eben noch wie das Thumbnail verkleinern muss, und am Schluß das Originalbild wieder vom Server lösche?

    Ich probier noch ein bisschen rum, hoffe ich bekomme es hin, sonst würde ich vielleicht noch mal um Hilfe bitten.

    Danke und Gruß
    Schinny

  12. #12
    TP-Member Schinny macht alles soweit korrekt
    Registriert seit
    Jan 2003
    Ort
    Frankfurt / Main
    Beiträge
    33
    Hi,

    wollt nur kurz bescheid sagen, hat sich erledigt - habs genau so gemacht.

    Danke und Gruß
    Schinny

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51