Загрузите и сохраните изображение из поля BLOB-объекта в Delphi с помощью Firebird
В моей базе данных Firebird у меня есть поле Blob, которое содержит растровое изображение. Я должен загрузить и отобразить в TImage, расположенном в моей форме. Впоследствии мне придется сохранить в том же поле изображение, выбранное OpenDialog.
1 ответ
Решение
Procedure LoadBitmapFromBlob(Bitmap: TBitmap; Blob: TBlobField);
var
ms, ms2: TMemoryStream;
begin
ms := TMemoryStream.Create;
try
Blob.SaveToStream(ms);
ms.Position := 0;
Bitmap.LoadFromStream(ms);
finally
ms.Free;
end;
end;
пример использования
procedure TForm4.Button1Click(Sender: TObject);
var
bmp: TBitmap;
begin
bmp := TBitmap.Create;
try
LoadBitmapFromBlob(bmp, TBlobField(Dataset.FieldByName('Image')));
Image1.Picture.Assign(bmp);
bmp.SaveToFile(OpenDialog.FileName);
finally
bmp.Free;
end;
end;