@Turbo:
Image.Picture.Assign(TBitmap(ImgStream));
dieses kann nichts bewirken, weil TBitmap intern niemand mehr kennt, da bei diesem Assign intern nur noch TPersitent (Typ des Parameters) und der innere Type des Objekts bekannt ist ... harte Casts ändern daran nichts.
Und da alle deine Casts nach Innen gleich aussehn, bringt diese ganze Fallunterscheidung nicht wirklich etwas.