1 、如何实现在Microsoft Access数据库中的图像存储:
这里是利用TStream的子类TMemoryStream向Microsoft Access数据库中存储图像的。
下面的这段代码是在按了“保存”按钮之后所触发的事件处理程序:
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG: TJPEGImage;
MS: TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
Assign(Image.Picture.Graphic);
MS := TMemoryStream.create;
SaveToStream(MS);
MS.Position := 0;
Table1.Edit;
TBlobField(Table1.FieldbyName('Image')).LoadFromStream(MS);
Table1.Post;
Messagebox(Getactivewindow(), '图像保存完毕!', '保存', MB_OK);
end;
finally
MyJPEG.Free;
end;
end;
在这段代码里TStream的子类TMemoryStream利用内存流起到了将BMP格式转化为JPEG格式
的中间桥梁的作用。
2 、如何将图像从Microsoft Access数据库中取出并显示出来:
下面的这段代码是在按了“查看图像”按钮之后所触发的事件处理程序:
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG: TJPEGImage;
MS: TMemoryStream;
begin
try
MS := TMemoryStream.Create;
TBlobField(Query1.FieldByName('Image')).SaveToStream(MS);
MS.Position := 0;
MyJPEG := TJPEGImage.Create;
MyJPEG.LoadFromStream(MS);
DBImage1.Picture.Bitmap.Assign(MyJPEG);
//或是Sender.Picture.Assign(MyJPEG);
finally
MS.Free;
MyJPEG.Free;
end;
end;
用到TBlobField的时候要在接口包含DB,用到TJPEGImage时要在接口包含Jpeg
转载于:https://www.cnblogs.com/piaoliuxia/archive/2008/10/16/1937286.html