Ciao, io ho avuto un problema simile al tuo con delle immagini, in pratica in un ciclo utilizzando la funzione imagecreatetruecolor(), la memoria si esauriva, quindi dopo aver terminato la manipolazione dell'immagine ho dovuto utilizzare la funzione imagedestroy() che accetta la risorsa ritornata dalla funzione imagecreatetruecolor().
Forse potrebbe essere un problema simile anche nel tuo caso.