把数据库中图片用adoquery在窗体image中显示出来delphi代码
3个回答
展开全部
我之前做过,给个例子吧。
如果是JPG格式图片需要引用——use JPEG
然后定义
var
MyJPEG: TJPEGImage;
...
if not ADOQuery1.FieldByName('Photo').IsNull then //有照片存在的话
begin
TBlobField(ADOQuery1.FieldByName('Photo')).SaveToStream(ms); //将查询到JPEG保存到ms中
ms.Position := 0; //设置数据指针在TStringStream中的位置为0
MyJPEG.LoadFromStream(ms); //从流中加载到MyJPEG
Image1.Picture.Bitmap.Assign(MyJPEG); //显示在Image中(图片是JPG的转换成BMP)
end;
另外,建议你图片保存到数据库的时候格式转成JPG的,占用空间少
如果是JPG格式图片需要引用——use JPEG
然后定义
var
MyJPEG: TJPEGImage;
...
if not ADOQuery1.FieldByName('Photo').IsNull then //有照片存在的话
begin
TBlobField(ADOQuery1.FieldByName('Photo')).SaveToStream(ms); //将查询到JPEG保存到ms中
ms.Position := 0; //设置数据指针在TStringStream中的位置为0
MyJPEG.LoadFromStream(ms); //从流中加载到MyJPEG
Image1.Picture.Bitmap.Assign(MyJPEG); //显示在Image中(图片是JPG的转换成BMP)
end;
另外,建议你图片保存到数据库的时候格式转成JPG的,占用空间少
展开全部
1.非数据敏感的
with adoquery do
begin
TblobField(FindField(图片字段).SaveToFile(FileName);//另存临时图片文件
Image.Picture.LoadfromFile(FileName);
DeleteFile(FileName);//删除临时文件
end;
2.使用dbimage直接对应adoquery的图片字段,要注意图片的格式
with adoquery do
begin
TblobField(FindField(图片字段).SaveToFile(FileName);//另存临时图片文件
Image.Picture.LoadfromFile(FileName);
DeleteFile(FileName);//删除临时文件
end;
2.使用dbimage直接对应adoquery的图片字段,要注意图片的格式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1楼的办法很笨,2楼的可取,从数据库独处图片到内存再读到窗体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询