uses jpeg; //保存jpeg文件 procedure Tfrmado.ImageDblClick(Sender: TObject); begin with topendialog.Create(Self) do begin if execute then begin if not (adoquery1.State in [dsedit]) then adoquery1.Edit ; tblobfield(adoquery1.FieldByName('jpg')).LoadFromFile(FileName) ; end; end; end;//显示出来 procedure Tfrmado.DataSource1DataChange(Sender: TObject; Field: TField); var jpeg:tjpegimage; stream :TMemoryStream; begin if adoquery1jpg.BlobSize>0 then begin jpeg:=tjpegimage.Create; stream :=TMemoryStream.Create; tblobfield(adoquery1.FieldByName('jpg')).savetostream(stream); Stream.Seek(0,soFromBeginning); jpeg.loadfromstream(stream); image.Picture.Bitmap.Assign(jpeg); jpeg.Free; stream.Free; end else image.Picture:=nil; end;
Image1.Picture.LoadFromFile(Table1.FieldByName('PahtFilename').AsString);
先将数据读到流中,然后再通过image来显示
dbimage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
在
image1.pictrue:=dbimage1.picture;
上边有个存储图片的例子,是用accsee做的,与SQL SERVER相似,可以参考。
//保存jpeg文件
procedure Tfrmado.ImageDblClick(Sender: TObject);
begin
with topendialog.Create(Self) do
begin
if execute then
begin
if not (adoquery1.State in [dsedit]) then adoquery1.Edit ;
tblobfield(adoquery1.FieldByName('jpg')).LoadFromFile(FileName) ;
end;
end;
end;//显示出来
procedure Tfrmado.DataSource1DataChange(Sender: TObject; Field: TField);
var
jpeg:tjpegimage;
stream :TMemoryStream;
begin
if adoquery1jpg.BlobSize>0 then
begin
jpeg:=tjpegimage.Create;
stream :=TMemoryStream.Create;
tblobfield(adoquery1.FieldByName('jpg')).savetostream(stream);
Stream.Seek(0,soFromBeginning);
jpeg.loadfromstream(stream);
image.Picture.Bitmap.Assign(jpeg);
jpeg.Free;
stream.Free;
end
else
image.Picture:=nil;
end;
things(平) (枕流以洗耳,漱石以磨牙) :
Image1.Picture.LoadFromFile(Table1.FieldByName('PahtFilename').AsString);
things(平) (枕流以洗耳,漱石以磨牙) :
Image1.Picture.LoadFromFile(Table1.FieldByName('PahtFilename').AsString);