A ver, cuando vas a mostrar una imagen con header es porque vas a enviar la imagen como binario, la función header le dice al navegador "hey, te voy a mandar una imagen en binario!, así que muestrala como tal!", si no se comunicara al navegador que es una imagen el navegador solo mostraria muchísimos caracteres raros, ahora, la etiqueta img de html digamos que resuelve este problema, y el navegador automáticamente sabe que se trata de una imagen...
Mostrando imagen con header...
Si tu a esto le agregas los caracteres '<img src="...' etc, el código binario que se enviará estará corrupto y no se podrá ver la imagen