Cambia poco, anzichč creare una immagine da 0 la crei a partire da una gią esistente.
Puoi usare imagecreatefromgif() imagecreatefromjpeg() o imagecreatefrompng(), a seconda del formato dell'immagine.

In questo modo hai un'immagine manipolabile tramite le librerie GD, se sei in grado di scrivere non ci dovrebbero essere problemi