Du debuggst nicht vernünftig. Header wieder auskommentieren und Bild direkt im Browser aufrufen (also nicht per <img> eingebunden), und schauen welche Fehlermeldungen ausgegeben werden.
Ah interessant. Ich wusste garnicht, dass er mir keine vorhandenen Fehlermeldungen mehr ausgibt, sobald ich auf image/png gestellt habe. Das erklärt natürlich einiges. Hier war es einfach ein nicht vorhandener Offset... Danke!