14. december 2007 - 19:17Der er
7 kommentarer og 1 løsning
problemer med gd2 funktioner
Jeg bruger nogle gd2 funktioner til at resize billeder når jeg uploader dem, me får fejl hvis jeg uploade et billede på omkring 400kb, 50kb kan den godt klare.
Jeg får følgende fejl: Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 6144 bytes) in /.......
fejl kommer bl.a i følgende funktioner imagecopyresized() og imagecreatefromjpeg(). Jeg kan selvfølgelig godt se at den broller sig overstørrelsen. Men er der en præcis maks størrelsen, og er den evt. fastsat af mit webhotel, og er der ikke noget man kan gøre for at kunne håndtere størrere billeder?
Når dit billede på 400 kb bliver "pakket ud" til rene pixels, så fylder det gevaldig meget mere - JPG er som bekendt et komprimeret format.
Dit webhotel sætter åbenbart en grænse på 16MB - du kan nok ikke gøre noget ved det, men spørg da. Problemet er, at jo mere RAM hver proces får lov til at bruge, jo langsommere går det for andre.
Ude i verden ser man størrelser på 8, 12, 16, 32, 90 og 128 MByte til PHP.
Det giver selvfølgelig meget god mening. Men står der ikke at den tilladte data mængde er 16777216 bytes og at jeg forsøgte med 6144 bytes?
Men så kan men jo ikke rigtig bruge en sådan funktion til at resize billeder ned som er store når man uploader dem, hvis denne funktion alligevel kun kan tage billeder der allerede er så små at de ikke behøves at blive gjort mindre. Hvis det var forståeligt nok det jeg fik skrevet.
Klart nok. Ja jeg har en grænse på 16mb hukommelse kan jeg se i min phpinfo, som du også skrev. Kan man sige noget om hvad de svare til at billedfil størrelse, eller er det for forskelligt, fra billede til billede alt efter farver osv.? Eller må man bare årøve sig frem?
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.