C'è un modo per impedire a PHP GD image library di esaurire la memoria? Se viene caricata un'immagine troppo grande, GD tende a esaurire la memoria, terminando lo script. Mi piacerebbe lanciare un'eccezione o qualcosa di simile a tale estensione, ma purtroppo non è così.Un modo sicuro per impedire l'esaurimento della memoria della libreria di immagini GD? (PHP)
In questo momento sto usando uno script di tipo cobbled-together che per prima emette un ini_set('memory_limit', '128M')
, se funziona, sono solitamente impostato. A seconda della configurazione del server potrebbe non essere possibile, quindi sto ricadendo su un algoritmo che cerca di stimare la quantità di memoria necessaria (prendendo in considerazione la risoluzione, la profondità del colore, i canali e un fattore fudge), quindi la confronta con memory_get_usage()
se la funzione esiste, altrimenti fa una stima approssimativa.
Il tutto funziona così lontano, ma è tutt'altro che elegante e fallirà in alcuni casi limite, ne sono sicuro. C'è un modo migliore per farlo, cioè se GD fallisce con garbo se deve, invece di smettere tutto per fermarlo?
immagini JPEG (non-PNG o altri tipi) possono essere ridimensionate mentre il carico, vedere questa risposta per ulteriori dettagli: http://stackoverflow.com/questions/12661/efficient-jpeg-image-resizing- in-php/4613341 # 4613341 –