il codice funziona, devi fare attenzione al tipo header che invii:
se la funzione x mandare l'output è imagejpeg l'header sarà image/jpg;
se la funzione x mandare l'output è imagepng l'header sarà image/png.