Cita:
Empezado por MARIO2019
Buenos dias, tengo un proyecto donde he cargado la foto con formato jpg en una tabla (Campo foto (blob)) de estudiante. En un DBGRID tengo los datos de los estudiantes. Lo que necesito es que al posicionarme en una fia del DBGRID se visualice la foto del estudiante en un TIMAGE.
Antes no tenia problema al cargar imagenes con formato BMP, pero al cargar imagen con otro formato (JPG), DBIMAGE me quedo obsoleto
|
Te adjunto un procedimiento que te permite cargar en un TImage, una imagen almacenada en un campo de una base de datos (ya sea BMP o JPG).
Necesitas pasarle el campo de Tipo BLOB, la extensión y el TImage donde quieres que te la dibuje.
Es de los
ejemplos que puedes encontrar en el FTP del Club.
Código Delphi
[-]
procedure MostrarCampoJPGImage(FieldImagen:TBlobField; ext:string; Picture:TPicture);
var
Stream: TMemoryStream;
Jpg: TGraphic;
begin
Jpg := nil;
Stream := nil;
try
Stream := TMemoryStream.Create;
FieldImagen.SaveToStream(Stream);
if Stream.Size > 0
then begin
if AnsiUpperCase(ext)='.BMP' then
Jpg := TBitmap.create
else
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;
Para llamarlo puedes hacer de una de estas formas:
Código Delphi
[-]
MostrarCampoJPGImage(Table1Imagen, '.jpg', Image2.Picture);
MostrarCampoJPGImage(Table1Imagen, '.bmp', Image2.Picture);
Table1Imagen es el campo de tipo blob de tu tabla