Was macht GetImageType? Wird dadrin eventuell die Position im Stream verändert?
Dann eventuell
Delphi-Quellcode:
try
///////////////
Data.Position := 0;
// <-- an den Anfang des Streams gehen.
///////////////
png.LoadFromStream(Data);
// <--- das funktioniert nicht, Fehlermeldung wegen ungültigem Header, selbe URL mit idHTTP (Indy) funktioniert.
Ansonsten testweise:
Delphi-Quellcode:
Data.SaveToFile('xxx.png');
png.LoadFromFile('xxx.png');
Geht das?
Wenn nein, mit 'nem anderen Programm prüfen, ob der Stream eine vernünftige PNG-Datei enthält.