Avatar billede hoejgaard Juniormester
28. juni 2005 - 12:33 Der er 12 kommentarer og
1 løsning

spørgsmål omkring billedbehandling i php

Hej.
Jeg har nu set lidt på nogle scripts i PHP til billedbehandling, men er efterhånden blevet godt forvirret...

Jeg har feks. følgende der reducerer størrelse af en fil :

if (!empty($_FILES['upfil']['name'])) {
       
    $billede0 = tempnam('/customers/komsikomsa.dk/komsikomsa.dk/httpd.www/test/', 'f1');
    $billede0b = $billede0 . '.' . 'jpg';
    $billede = basename($billede0b);

    $konfiguration["upload_bibliotek"] = "./test";
   

/* Hvor flytter vi fra og til */
    $fra = $_FILES["upfil"]["tmp_name"];
    $til = $konfiguration["upload_bibliotek"] . "/" . $billede;

    move_uploaded_file($fra, $til);
 
    $st = filesize($til);


// Set a maximum height and width
    $width = 180;
    $height = $width;

    // Get new dimensions
    list($width_orig, $height_orig) = getimagesize($til);

    if ($width_orig > $width OR $height_orig > $height) {
      if ($width && ($width_orig < $height_orig)) {
        $width = ($height / $height_orig) * $width_orig;
      } else {
        $height = ($width / $width_orig) * $height_orig;
      }

    // Resample
    $image_p = imagecreatetruecolor($width, $height);
    $image = imagecreatefromjpeg($til);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

    $billede2 = $billede0 . '2' . '.' . 'jpg';
    $billede = basename($billede2);

    // Output
    imagejpeg($image_p, $billede2, 100);
    unlink($til);
}

Men er nu kommet i tvivl om hvorfor man overhovedet benytter disse billedbehandlings funktioner.
Hvorfor kan man ikke bare nøjes med at skalere størrelsen af billedet ned med en faktor (width*0.5 og height*0.5 ) og så undgå disse image funktioner. Det bliver billedet da også mindre af eller hvad...
Håber der er en venlig sjæl der vil give mig overblikket tilbage!
Avatar billede dennism Nybegynder
28. juni 2005 - 12:38 #1
Fordelen ved at skalere størrelsen, er at billedet så kommet til at fylde mindre.
Det er der jo mange der bruger, når man f.eks. laver thumbsnail af billederne i sit galleri, og så kan man trykke på det lille billede, hvorefter det store kommer frem. Fordelen er, at det lille jo fylder mindre, og det derfor går langt hurtigere at hente siden. Hvis man bare ændre størrelsen på sine billeder, bliver siden hurtigt meget tung at hente, hvis der er flere bileder.
Selvom man ændrer størrelsen, skal brugeren jo stadig hente de antal kb, som det store billede fylder.
Avatar billede Slettet bruger
28. juni 2005 - 12:38 #2
Mener du at resize i PHP eller bare rent i HTML at gøre bredde og højde mindre?

Vil du resize et billede er du nødt til at lave noget i stil med den kode du viser.
Avatar billede hoejgaard Juniormester
28. juni 2005 - 12:41 #3
det jeg mener er at hvis man nu bare i HTML gør bredde og højde mindre forholdsmæssigt er det så ikke samme resultat som det min kode ovenfor resulterer i ??
Avatar billede dennism Nybegynder
28. juni 2005 - 12:50 #4
Jo, på en måde.
Hvis du bare i HTML sætter højre og bredde til f.eks. at være 1/3-del af det oprindelige, så vil det synlige resultat være lig det som PHP laver.
Forskellen er bare, at hvis du anvender PHP, kan du få PHP til at lave billedet så det kun har den størrelse om du skal bruge, således at det ik kommer til at fylde mere end højest nødvendigt - et større billede fylder jo mere end et lille. Og som webdesigner er vi jo interesserede i, at vores side hentet hurtigst muligt.
Avatar billede hoejgaard Juniormester
28. juni 2005 - 12:51 #5
Okay er måske med nu :
Syntes bare det virker besværligt med så mange kode linier for at formindske et billede. Lidt utroligt at man ikke bare kan tage width og heigth og gange en faktor på og så mere eller mindre overføre det til databasen..
Avatar billede Slettet bruger
28. juni 2005 - 12:53 #6
hoejgaard> Ja og det er også besværligt at man ikke bare kan putte en sukkerknald i et fly, og derved flyve 1000000 km næsten gratis.

Nogle ting er bare som de er...
Avatar billede hoejgaard Juniormester
28. juni 2005 - 12:54 #7
Jeg har lidt problemer på b-one med at  benytte ovenstående kode hvis billederne bliver lidt store måske over 1MB. Kender du/i en anden udbyder hvor det kan lade sig gøre med større billeder.
Jeg mener det kan jo ikke være umuligt ??
Avatar billede hoejgaard Juniormester
28. juni 2005 - 12:55 #8
den var sjov el barto :-)
Avatar billede dennism Nybegynder
28. juni 2005 - 12:55 #9
Heh.. Gid det var så vel - så kunne man måske også få råd til at køre bil igen :)
Avatar billede Slettet bruger
28. juni 2005 - 13:14 #10
Problemet med filer over 1 MB er at de bruger mere hukommelse end B-One tillader i deres PHP Config.

Når billedet resizes fylder det pixelX * PixelY i hukommelsen. Det kan være B-One har sat grænsen til 2 MB. Den kan du ikke pille ved.
Avatar billede hoejgaard Juniormester
28. juni 2005 - 13:21 #11
okay men der må da findes webudbydere der har en grænse højere oppe ??
Kender du/i ikke nogen ??
Avatar billede hoejgaard Juniormester
28. juni 2005 - 23:10 #12
har skiftet til powerhosting, de har en øvre  grænse på 20M mod 2M hos b-one !

Læg et svar !
Avatar billede dennism Nybegynder
29. juni 2005 - 13:49 #13
Hvis du kan bruge mine svar, så kommer der her et svar.
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