WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   GD med stora bilder (https://www.wn.se/forum/showthread.php?t=25156)

qson 2007-11-19 21:40

Hej !
Skall skala om bilder i GD, men servern storknade (ingen output från PHP, inga felmeddelanden etc.), däremot felmeddelande på serverns terminal om att minnet var slut och PHP och MySql fick avslutas...
Har iofs bara 256MB i den än så länge (har beställt mer...)
Sedan när det blir dags att lansera sajten, antar jag att det kan bli svårt att få nåt webbhotell som tillåter denna minnesanvändning.
Sajten hanterar bilder (stora bilder), skapar tumnaglar och förhandsgranskningar. Ovanstående problem uppstod när jag laddade upp en 9-megapixel JPEG (3488x2616, ca 5MB). Hittade i en annan tråd att en sådan bild tar upp en del ( > 50 MB ? ) i minneskapacitet under tiden den behandlas...

Skall jag skriva skriva koden så att PHP bara hanterar en bild i taget, med typ en lock-file eller nåt.

Hur skal jag tänka? Kanske är för stort för mig ;) (Jag har många bollar i luften om man säger så...)

WizKid 2007-11-19 22:01

Ta och kolla vad inställningen memory_limit är i PHP. Kvittar hur mycket minne du har i burken om du inte ändrar limiten.

Jag brukar använda mig av ImageMagick för att skapa resiza bilder. Möjligt att den använder lika mycket minne men man slipper i alla fall gränsen som är satt i PHP. Och sen i de tester jag gjort så har resizningen blivit bättre och mindre filstorlek.

Lite mer varför det behövs så mycket minne: http://qdig.sourceforge.net/Support/AllowedMemorySize

qson 2007-11-19 23:02

Självklart har jag tänkt på det. Dels så har jag memory_limit på fruktansvärt högt, och sen kör jag ini_set('memory_limit',-1); i skriptet så det är inte PHP som begränsar. Jag har även kört diverse minnestester, och kommit fram till att det fysiska minnet verkligen är slut. Mer minne komer på posten snart, så jag kan dubbelkolla, men jag är 99,9%säker på att det är minnesbrist.

Citat:

Skall jag skriva skriva koden så att PHP bara hanterar en bild i taget, med typ en lock-file eller nåt.

qson 2007-11-21 18:35

Nu förstår jag varför PHP dör :D Lite fel omräkningsfaktor, den försökte skapa en truecolorimage på 24000 x 18200 px.

Men min fråga kvarstår:
Skall jag begränsa antalet samtidiga "bildändringar" så att PHP bara ändrar storlek på en bild åt gången.
Skall även kolla på ImageMagick.

Weaver 2007-11-21 19:13

Eventuellt kanske burken beter sig annorlunda om du kör exempelvis imagemagick "utanför scriptet" istället för att använda php modulen.

Du hade kunnat testa att låta php dra igång imagemagick på kommandoraden med shell_exec('nice <nicenivå> imagemagick...'); och se om burken beter sig annorlunda då.

qson 2007-11-21 23:21

Tack. Jag har fått det att funka nu, men skall ändå överväga ImageMagick.


Alla tider är GMT +2. Klockan är nu 07:05.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson