Se salvi l'immagine non c'è bisogno dell'header:
Codice PHP:
$im = imagecreatefrompng("img.png");
imagesavealpha($im, true);
$nero = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 3, 5, 4, "a", $nero);
//header('Content-type: image/png');
imagepng($im, "image.png");
imagedestroy($im);
echo "<img src=image.png ><br>";
Ma a mio parere è meglio così. Non salvi l'immagine in un file ma la mostri solamente e quindi il file php che conterrà questo codice sarà considerato un immagine e non una pagina html. Poi comunque dipende da come devi utilizzarlo.
Codice PHP:
$im = imagecreatefrompng("img.png");
imagesavealpha($im, true);
$nero = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 3, 5, 4, "a", $nero);
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);