Avatar billede Asger Carlsen Nybegynder
15. april 2009 - 18:40 Der er 13 kommentarer og
1 løsning

Kan ikke rezise store billeder

Hej eksperter

Jeg har fundet et hav af forskellige resize-koder på nettet, og fået dem til at virke. Ender dog altid med det samme problem. Så snart jeg har et billeder omkring 2 mb elller mere, så går resize-koden i hårdknude. Er det simpelthen den øvre grænse for hvad der er muligt at resize, eller er det bare fordi jeg endnu ikke har fundet en kode der kan klare det?

Pt. kører jeg med denne kode, er der nogen der kan gennemskue hvorfor den må give fortabt med de store billeder?

=================================

// Resize
function resizeimage($sourcefile,$maxwidth,$maxheight,$destinationfile) {

    global $newwidth,$newheight;

  if($img_src=@imagecreatefromjpeg($sourcefile)) {
        copy($sourcefile, $destinationfile);
        $info=@getimagesize($sourcefile);

        if($info[1]>$maxheight || $info[0]>$maxwidth)
        {
        $ratio_height=$maxheight/$info[1];
        $ratio_width=$maxwidth/$info[0];
        $ratio=min($ratio_width,$ratio_height);
        $newwidth=intval($info[0]*$ratio);
        $newheight=intval($info[1]*$ratio);
        $img_dst=imagecreatetruecolor($newwidth,$newheight);
        imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $info[0], $info[1]);
        @imagejpeg($img_dst, $destinationfile);
        imagedestroy($img_dst);
        }
        else
        {
        $newwidth=$info[0];
        $newheight=$info[1];
        }
    @imagedestroy($img_src);
    return true;
    }
    else
    {
    return false;
    }
}
Avatar billede erikjacobsen Ekspert
15. april 2009 - 18:58 #1
Det er oftest et problem med mængden af RAM, der kræves af det ukomprimerede billede - afhænger derfor af opløsning af billedet.

Men derudover er PHPs resize af billeder ikke særlig god.
Avatar billede Asger Carlsen Nybegynder
15. april 2009 - 19:02 #2
Hvad er der ellers af alternativer?

Det skal fungere i sammenhæng med et uploadscript.
Avatar billede erikjacobsen Ekspert
15. april 2009 - 19:24 #3
Alternativer? Få et webhotel med mere RAM til hver bruger - eller resize billederne før upload.
Avatar billede jakobdo Ekspert
15. april 2009 - 21:30 #4
Måske imagemagick er bedre, bruger dog bare altid "indbyggede" resize funktion i php.
Avatar billede Asger Carlsen Nybegynder
16. april 2009 - 18:47 #5
imagemagick er det er resize program?
Avatar billede jakobdo Ekspert
16. april 2009 - 18:55 #6
Nej, det skal vel ses som et alternativ til gd lib.
Avatar billede Asger Carlsen Nybegynder
16. april 2009 - 19:09 #7
Er det så ikke afhængig af serverns RAMkapacitet på samme måde som GD lib er?
Avatar billede jakobdo Ekspert
16. april 2009 - 19:10 #8
Aner det ikke. :o)
Avatar billede Asger Carlsen Nybegynder
16. april 2009 - 19:19 #9
hm, jeg må bare prøve at lære brugerne af sitet at resize deres billeder selv. Smid et svar begge 2, så må I dele point.
Avatar billede erikjacobsen Ekspert
16. april 2009 - 19:22 #10
Jeg samler slet ikke på point, tak. Hvor er det du har problemer med for lidt RAM?
Avatar billede Asger Carlsen Nybegynder
16. april 2009 - 19:48 #11
Jeg har webhotel hos one.com. Så jeg får næppe dem til at frigive mere ram.
Avatar billede erikjacobsen Ekspert
16. april 2009 - 19:53 #12
Nej. Jeg kender ikke personligt til one.com, men mener de har 16 MByte afsat. Man kan sagtens få mere på andre webhoteller.

Men som sagt: hvis den resize skal være god, skal man hellere gøre det med et passende fotoprogram, hvor man også kan beskære, ændre lysstyrke, fuske lidt med skarphed, osv, så man ender med pæne billeder.
Avatar billede jakobdo Ekspert
16. april 2009 - 20:28 #13
Du får et svar.
Har du evt. prøvet at ændre memory_limit via en htaccess ?
Avatar billede jakobdo Ekspert
21. april 2009 - 20:49 #14
Takker for point.
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