Bueno, más o menos me refería a
esto. Lo recordaba con menos líneas la verdad.
He subido el
ejemplo completo a mi web, ya que "pesa" demasiado para subirlo aquí. Incluye una Base de Datos algunas imágenes y el compilado.
Los dos procedimientos que se usan son estos:
Uno para obtener la imagen JPG de disco y guardarla e la Base de Datos.
Código Delphi
[-]procedure loadjpeg(FieldIMAGEN:TblobField; FileName:string);
var
Jpg: TJpegImage;
Stream: TMemoryStream;
begin
Jpg := nil;
Stream := nil;
try
Jpg := TJpegImage.Create;
Jpg.LoadFromFile(filename);
Stream := TMemoryStream.Create;
Jpg.SaveToStream(Stream);
Stream.Position := 0;
FieldIMAGEN.loadFromStream(Stream);
except
showmessage('problemas');
jpg.Free;
Stream.Free;
raise;
end;
jpg.Free;
Stream.Free;
end;
Y otro para poder visualizar esas imágenes JPG en los componentes estandard de Base de Datos.
Código Delphi
[-]procedure ShowJPG(FieldImagen:TBlobField; Picture:TPicture);
var
Stream: TMemoryStream;
Jpg: TJpegImage;
begin
Jpg := nil;
Stream := nil;
try
Stream := TMemoryStream.Create;
FieldImagen.SaveToStream(Stream);
if Stream.Size > 0
then begin
Jpg := TJpegImage.Create;
Stream.Position := 0;
Jpg.LoadFromStream(Stream);
Picture.Assign(Jpg);
end
else Picture.Assign(nil);
except
Picture.Assign(nil);
end;
jpg.Free;
Stream.Free;
end;