Ich glaube, du hast vergessen das FileStream Objekt frei zu geben. Oder hab eich es nur über sehen. Warum liest du das eigentlich in zwei Buffer ein?
FileStream.Free; ?
Ich habe es jetzt so geändert das ich mir das Image über einen IStream lade.
Gdip_LoadImageFromStream(FileIstream, Bitmap);
Aber durch das auf splitten in 2 Blöcke ist dies das Resultat von
pImageStream := TStreamAdapter.Create(FileStream);
gruss