personalmente credo che così com'è, un eventuale errore non lo vedresti nemmeno...

Se c'è un errore, te mandi in echo l'errore, ma al browser hai già detto che si tratta di un'immagine, quindi non vedrai mai l'errore...

header("Content-type: image/jpeg");

commenta questa riga e vedi se hai errori..
ovviamente chiamando l'immagine direttamente dal browser, così vedi gli errori e risolvi..