Es normal, ya que lo que se genera es la información binaria de la imagen.
Por eso al visualizarla directamente funciona, al mezclarla con texto ya no, por que no puedes mezclar texto con datos binarios.
Para mostrar una imagen debes cargarla usando el tag <img/>
Código HTML:
<img src="script_que_genera_la_imagen.php"/>
¿Se te ocurrió tal vez?