代码如下:
procedure TForm1.Button4Click(Sender: TObject);//保存图片到数据库
Var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
Begin
MyJPEG := TJPEGImage.Create;
Try
With MyJPEG do Begin
Assign(Image1.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position := 0;
adoquery1.Edit;
TBlobField(adoquery1.FieldbyName('附档')).LoadFromStream(MS);
adoquery1.Post;
Messagebox(Getactivewindow(), '图像保存完毕!', '保存', MB_OK);
End;
Finally
MyJPEG.Free;
End;procedure TForm1.Button11Click(Sender: TObject); //显示图片
Var
MyJPEG : TJPEGImage;
MS : TMemoryStream;
Begin
Try
MS := TMemoryStream.Create;
TBlobField(adoQuery1.FieldByName('附档')).SaveToStream(MS);
MS.Position := 0;
MyJPEG := TJPEGImage.Create;
MyJPEG.LoadFromStream(MS);
Image1.Picture.bitmap.Assign(MyJPEG);
Finally
MS.Free;
MyJPEG.Free;
End;
procedure TForm1.Button4Click(Sender: TObject);//保存图片到数据库
Var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
Begin
MyJPEG := TJPEGImage.Create;
Try
With MyJPEG do Begin
Assign(Image1.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position := 0;
adoquery1.Edit;
TBlobField(adoquery1.FieldbyName('附档')).LoadFromStream(MS);
adoquery1.Post;
Messagebox(Getactivewindow(), '图像保存完毕!', '保存', MB_OK);
End;
Finally
MyJPEG.Free;
End;procedure TForm1.Button11Click(Sender: TObject); //显示图片
Var
MyJPEG : TJPEGImage;
MS : TMemoryStream;
Begin
Try
MS := TMemoryStream.Create;
TBlobField(adoQuery1.FieldByName('附档')).SaveToStream(MS);
MS.Position := 0;
MyJPEG := TJPEGImage.Create;
MyJPEG.LoadFromStream(MS);
Image1.Picture.bitmap.Assign(MyJPEG);
Finally
MS.Free;
MyJPEG.Free;
End;
Var
MS : TMemoryStream;
Begin
Try
MS := TMemoryStream.Create;
TBlobField(adoQuery1.FieldByName('附档')).SaveToStream(MS);
MS.Position := 0;
Image1.Picture.Picture.Graphic.LoadFromStream(MS);
Finally
MS.Free;
End;
stream: TMemoryStream;
begin
TBLOBFIELD(adoQuery1.FieldByName('附档')).saveToStream(stream);
stream.position:= 0;
image1.picture.loadFromSteam(stream);
end;
可能数据库字段太小了吧?stream内容没有全部保存到数据库中,先使用几K的文件试试。