Avatar billede KHHP Juniormester
12. juni 2012 - 11:38 Der er 7 kommentarer og
1 løsning

Resize billede relativt i forhold til original størrelse

Hej
Jeg er igang med at lave en side hvor jeg ønsker at et billede skal have en maks højde på 300px, men  ved ikke rigtigt om jeg kan få PHP til automatisk at ændre billedets størelse relativt i forhold til originalen.
Hvis jeg f.eks. har et billede der er h:1500px * w:2000px i opløsning og så ønsker at ændre h:1500px til h:300px, så skal w:2000px automatisk følge med ned i den korrekte størrelse, så billedet for disse dimensioner:
h:300px * w:400px
Kan det lade sig gøre i PHP, eller skal jeg ind og gøre det manuelt?
Grunden til at jeg godt kunne tænke mig at have den funktion er i forbindelse med upload af billeder til et site jeg er igang med at lave et showroom og jeg kan ikke forvente at alle folk kan finde ud af at ændre størrelsen på deres billeder. Det ville jo se forfærdeligt ud hvis jeg på siden fik uploadet et billede der var 6000px*6000px i størrelse og det så ikke automatisk blev skaleret ned til en max højde på 300px.
Kan man måske bruge JavaScript i stedet for at tilføje dimensioner på billederne?
Avatar billede claes57 Ekspert
12. juni 2012 - 11:45 #1
Avatar billede KHHP Juniormester
12. juni 2012 - 12:11 #2
Ok.
Så har jeg indsat det og gemt filerne:
I mit upload-script ser den del nu således ud:
$img = md5(date("Y-m-d H-i-s")).".".$endelse;
         
          move_uploaded_file($_FILES["billede"]["tmp_name"], "../images/upload/$img");
          $billede = "images/upload/".$img."";
          //Resize af billede
            include ('../includes/SimpleImage.php');
            $image = new SimpleImage();
            $image->load('../'.$billede);
            $image->resizeToHeight(300);
            $image->save('../'.$billede);

Vil det virke som det står nu, eller skal jeg lave resize inden den ændrer filnavn?
Avatar billede pstidsen Novice
12. juni 2012 - 12:51 #3
Det er dumt at nedskallere store billeder til f.eks. 300*400 px, hvis der er mange, da det vil give lang loadetid. Det optimale er ar nedskallere inden de lægges på siden,
Avatar billede KHHP Juniormester
12. juni 2012 - 13:24 #4
#3 Det er jo netop det der skulle ske når php-scriptet køres. Billedet uploades, gemmes og størrelsen ændres. Dernæst ligges det hele på siden. Så billederne blive mindre inden de kommer på siden.
Avatar billede pstidsen Novice
12. juni 2012 - 14:53 #5
Okay så længe billedet ligger i lille størrelse på serveren er det godt.
Avatar billede KHHP Juniormester
12. juni 2012 - 15:01 #6
#1 Har testet den kode du foreslog, på den måde jeg skrev jeg havde lagt det i mit script og det virker uden problemer. Scriptet tilpasser selv bredden efter den højde jeg har sagt og alt bliver gemt korrekt.
Avatar billede KHHP Juniormester
12. juni 2012 - 15:02 #7
Så claes57, vil du ikke være så venlig at smide svar
Avatar billede claes57 Ekspert
12. juni 2012 - 16:35 #8
ok - fiks rutine...
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
Kurser inden for grundlæggende programmering

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