in realtà è cosi solo da poche release e questo principalmente per colpa di codice scritto male o che spreca inutilmente quantità di risorse inimmaginabiliOriginariamente inviato da bubi1
Alla fine credo che tu debba incrementare il memory_limit, se puoi. 24 mega sono pochi, php mette di default 128.
in realtà è di più perché molte immagini utilizzano un bpp di 32, ovvero 32 bit per pixel, ovvero 4 byte per pixel, quindi diciamo che si arriva con facilità anche a 10mb.Considera che per ridimensionare un immagine compressa (e la compressione jpg puo' arrivare anche 1:10), la libreria che se ne occupa deve tenere in memoria contemporaneamente la copia originale non compressa e la nuova immagine.
Ad esempio un immagine con la risoluzione 1900x1200 a 24bpp, puo' pesare 1 mb, ma consumera' 1900*1200*24 = 54720000 bits, che sono ~6-7 mb - e questa e' solo una parte di memoria necessaria.
In realtà la cosa corretta da fare sarebbe evitare che immagini cosi grandi vengano processate e per far questo si dovrebbe poter usare la funzione getimagesize, leggendo il primo, il secondo ed il settimo indice dell'array andando quindi a verificare la memoria necessaria per l'elaborazione integrando il tutto con ini_get (o ini_get_all) per leggere la memoria massima disponibile dello script e memory_get_usage per vedere quanta se ne sta già usando. Ovviamente è importante liberare la memoria appena si può ... sempre
In alternativa, se si devono elaborare indipendentemente si usano tools esterni, come le imagemagik che, anche se non velocissime, ma comunque più delle gd, non sono limitate dalle funzioni di php.
Ovviamente se si hanno di queste necessità il mio consiglio è una VPS (un server virtuale) da un fornitore di servizi serio che faccia uso di xen o vmware per fornire la macchina virtuale