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

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


person Grrey    schedule 15.09.2008    source источник


Ответы (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 в раздел uses вашего файла модуля.

person Ali    schedule 16.09.2008

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

person Lars Truijens    schedule 15.09.2008

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

person Roger Ween    schedule 15.09.2008

Таблица парадоксов Delphi 7

вставить dbiimage в 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;

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

person alper    schedule 29.12.2014