Pues entonces ya está, revisa las funciones que te han sugerido antes, debes programar la misma lógica para leer y guardar la imagen.
Si lo piensas, las únicas funciones que cambian son imagecreatefrom
???() e image
???(), así que ahí tienes todo lo necesario para continuar.