Hola ginkaku.
Una de las opciones, la mas simple a mi modo de ver, es que guardes conjuntamente con la imagen, el tipo de la misma en otro campo creado en la tabla a ese efecto.
Supongamos que tenes los campos "IMAGE" y "IMGTYPE", este último de tipo entero en los que arbitrariamente voy a considerar 0=BMP, 1=JPG, ..., entonces aprovechando el polimorfismo podrías hacer:
Código:
...
#include <jpeg.hpp>
// (y demás necesarios)
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap *B = new Graphics::TBitmap;
TGraphic *G;
switch (IBQuery1->FieldByName("IMGTYPE")->AsInteger) {
case 0 : G = new Graphics::TBitmap; break;
case 1 : G = new TJPEGImage; break;
case 2 : G = new TGIFImage; break;
//...
}
G->Assign(((TBlobField*)(IBQuery1->FieldByName("IMAGE"))));
B->Assign(G);
Image1->Picture->Bitmap->Assign(B);
delete G;
delete B;
}
Para el ejemplo usé componentes IBX, pero no tendría que haber inconveniente con otros.
Saludos