Estimado: te cuento que el campo BLOB sería el bitmap en sí (BLOB vendría a significar algo así como: Binary Large Object Block, si mal no recuerdo).
Los controles (por ejemplo: TDBIMage) que hacen referencia a este tipo de campo contienen una "interfaz" en su interior que traduce el contenido a una imagen en tu caso particular. Ahora bien, siguiendo con el tema, una imagen no es sólo un mapa de bits, sino que además contiene una cabecera que indica: el tipo de imagen, el tamaño (alto x ancho), la paleta de colores que usa, etc. Así que posiblemente tengas guardado en tu campo algo que no es precisamente una imagen y de ahí el error (por experiencia, a los mensajes de error hay que creerles, así que si te dice INVALID BITMAP, es porque tienes un bitmap no válido y no le des más vueltas :-) ).
Para cargar una imagen en tu campo BLOB lo podés hacer desde el portapapeles o bien con alguna función como la que mencionas.
Como ejemplo, te paso esta porción de código para cargar ina imagen desde un archivo haciendo doble click sobre el DBIMage:
Código Delphi
[-]
procedure TForm1.DBImage1DblClick(Sender: TObject);
var
D: TOpenDialog;
begin
D := TOpenDialog.Create(nil);
try
if D.Execute then
with TDBImage(Sender) do
begin
if not (DataSource.State in [dsEdit, dsInsert]) then
DataSource.DataSet.Edit;
Picture.LoadFromFile(D.FileName);
end;
finally
D.Free;
end;
end;