Как сохранить изображение jpg в базу данных, а затем загрузить его в Delphi, используя FIBplus и TImage?

Как сохранить изображение jpg в базе данных, а затем загрузить его в Delphi, используя FIBplus и TImage?

4 ответа

var
  S : TMemoryStream;
begin
  S := TMemoryStream.Create;
  try
    TBlobField(AdoQuery1.FieldByName('ImageField')).SaveToStream(S);
    S.Position := 0;
    Image1.Picture.Graphic.LoadFromStream(S);
  finally
    S.Free;
  end;
end;

если вы используете изображения в формате JPEG, добавьте модуль JPG, чтобы использовать пункт вашего файла модуля.

Эта страница объясняет это. Используйте SaveToStream и TMemoryStream вместо SaveToFile, если вы не хотите временных файлов. TImage.Picture имеет LoadFromStream, который загружает изображение из потока в TImage для отображения.

Стол Парадокса Delphi 7

вставить dbimage в jpeg

var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if openpicturedialog1.Execute then
  begin
    Sicil_frm.DBNavigator1.BtnClick(nbEdit);
    image1.Picture.LoadFromFile(openpicturedialog1.FileName);
    try
       BlobStream := dm.sicil.CreateBlobStream(dm.sicil.FieldByName('Resim'),bmWrite);
       FileStream := TFileStream.Create(openpicturedialog1.FileName,fmOpenRead or fmShareDenyNone);
       BlobStream.CopyFrom(FileStream,FileStream.Size);
       FileStream.Free;
       BlobStream.Free;
       Sicil_frm.DBNavigator1.BtnClick(nbPost);
       DM.SicilAfterScroll(dm.sicil);
     except
       dm.sicil.Cancel;
     end;
  end;
end;

Ошибка "Растровое изображение является действительным"

Посмотрите здесь. Я думаю, что вы должны преобразовать его в поток, сохранить его и наоборот.

Другие вопросы по тегам