La verdad no me interesa manejar imagenes... pero hice una prueba local (archivo local, ruta local) y me funciono PERFECTO!
Pensando sobre que querias decir con "todo el chorro de símbolos" .. ahora te entendí : eso que veias era el archivo generado devuelto por pantalla pero no como imagen sino como secuencia de bytes y si tal como estaba tu codigo, al comienzo del script (sin hacer ningun echo / print ni nada similar) hacias:
... hubieras visto la imagen rotada en pantalla