Avatar billede oldschool Nybegynder
23. september 2007 - 16:09 Der er 2 kommentarer og
1 løsning

Resize to gange

Hey

Jeg har et php script som jeg bruger til at uploade et billeder, som bliver resized og renamed og stien bliver sendt til en database... Men, kunne godt tænke mig at få scriptet til at lave én kop mere og altså på den måde genere et thumbnail... men har kke kunnet få det bakset sammen.

Efter mange timers søgen er jeg dog kommet frem til at den det bedste er at resize det netop rezisede billede?

Anyways, min kode er her, hvis der er en der kan hjælpe mig på vej til den lille udbyggelse vil jeg blive meget glad!

if ($_FILES['Filedata']['name']) {
        echo(" ");
        $uploadDir = "uploads/";
        $uploadFile = "uploads/" .  $action . basename($_FILES['Filedata']['name']);
        move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
        //Resize og dupliker
        $max_width=400; //max bredde
        $max_height=300; //max højde
        $size=getimagesize($uploadFile);
        $width=$size[0];
        $height=$size[1];
        $x_ratio=$max_width/$width;
        $y_ratio=$max_height/$height;
        if(($width<=$max_width) && ($height<=$max_height)){
                $tn_width=$width;
                $tn_height=$height;
        }
        else if(($x_ratio*$height)<$max_height){
                $tn_height=ceil($x_ratio*$height);
                $tn_width=$max_width;
        }
        else{
                $tn_width=ceil($y_ratio*$width);
                $tn_height=$max_height;
        }
        $src=imagecreatefromjpeg($uploadFile);
        $dst=imagecreatetruecolor($tn_width,$tn_height); //lav en holder
        imagecopyresized($dst,$src,0,0,0,0,$tn_width,$tn_height,$width,$height);
        $nameResized = $uploadDir . substr(md5(uniqid(rand(), true)),0,20) . "thumb.jpg"; //navn på det nye billede
        imagejpeg($dst,$nameResized,80); //gemmer det nye billede med jpg kvalitet 80
        imagedestroy($src);
        imagedestroy($dst);



thanks :)
Avatar billede oldschool Nybegynder
23. september 2007 - 16:29 #1
woila, fandt ud af det (må have lavet nogle søndags sjuske fejl tidligere... Men sådan ser det ud:

if ($_FILES['Filedata']['name']) {
        echo(" ");
        $uploadDir = "uploads/";
        $uploadFile = "uploads/" .  $action . basename($_FILES['Filedata']['name']);
        move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
        //Resize og dupliker
        $max_width=400; //max bredde
        $max_height=300; //max højde
        $size=getimagesize($uploadFile);
        $width=$size[0];
        $height=$size[1];
        $x_ratio=$max_width/$width;
        $y_ratio=$max_height/$height;
        if(($width<=$max_width) && ($height<=$max_height)){
                $tn_width=$width;
                $tn_height=$height;
        }
        else if(($x_ratio*$height)<$max_height){
                $tn_height=ceil($x_ratio*$height);
                $tn_width=$max_width;
        }
        else{
                $tn_width=ceil($y_ratio*$width);
                $tn_height=$max_height;
        }
        $src=imagecreatefromjpeg($uploadFile);
        $dst=imagecreatetruecolor($tn_width,$tn_height); //lav en holder
        imagecopyresized($dst,$src,0,0,0,0,$tn_width,$tn_height,$width,$height);
        $nameResized = $uploadDir . substr(md5(uniqid(rand(), true)),0,20) . "thumb.jpg"; //navn på det nye billede
        imagejpeg($dst,$nameResized,80); //gemmer det nye billede med jpg kvalitet 80
        imagedestroy($src);
        imagedestroy($dst);
       
        //Resize og dupliker
        $max_width_t=200; //max bredde
        $max_height_t=100; //max højde
        $size_t=getimagesize($uploadFile);
        $width_t=$size[0];
        $height_t=$size[1];
        $x_ratio_t=$max_width_t/$width_t;
        $y_ratio_t=$max_height_t/$height_t;
        if(($width_t<=$max_width_t) && ($height_t<=$max_height_t)){
                $tn_width_t=$width_t;
                $tn_height_t=$height_t;
        }
        else if(($x_ratio_t*$height_t)<$max_height_t){
                $tn_height_t=ceil($x_ratio_t*$height_t);
                $tn_width_t=$max_width_t;
        }
        else{
                $tn_width_t=ceil($y_ratio_t*$width_t);
                $tn_height_t=$max_height_t;
        }
        $src_t=imagecreatefromjpeg($uploadFile);
        $dst_t=imagecreatetruecolor($tn_width_t,$tn_height_t); //lav en holder
        imagecopyresized($dst_t,$src_t,0,0,0,0,$tn_width_t,$tn_height_t,$width_t,$height_t);
        $nameResized_t = $uploadDir . substr(md5(uniqid(rand(), true)),0,20) . "thumbb.jpg"; //navn på det nye billede
        imagejpeg($dst_t,$nameResized_t,80); //gemmer det nye billede med jpg kvalitet 80
        imagedestroy($src_t);
        imagedestroy($dst_t);
       
       
  }

Ha en dejlig søndag :)
Avatar billede oldschool Nybegynder
23. september 2007 - 16:29 #2
Svarer lige selv
Avatar billede kragekjaer Praktikant
23. september 2007 - 18:01 #3
Hejsa. Sad netop med samme problem forleden, men er løbet ind i en flaskehald på min udbyders nethotel, nemlig hvis brugeren uploader et fx 3000 px bredt billede, så opstår der problemer med resize, noget med at der måske ikke er ressourcer nok til at udføre handlingen. Hvor bliver dit hostet?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester