Как сохранить изображение 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;
Ошибка "Растровое изображение является действительным"
Посмотрите здесь. Я думаю, что вы должны преобразовать его в поток, сохранить его и наоборот.