delphi 读取access中保存的图片,并加载到Image控件上,支持多种图片格式。我使用的是Delphi 2010.

我在网上看到的例子,是先将读出的流数据加载到TJpegImage中,再将TJpegImage加载到TImage中,问题是这种方式只支持Jpeg格式的图片,其他格式不支持,... 我在网上看到的例子,是先将读出的流数据加载到TJpegImage中,再将TJpegImage加载到TImage中,问题是这种方式只支持Jpeg格式的图片,其他格式不支持,求教了 展开
 我来答
98...3@qq.com
2012-07-10 · 超过39用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:91.8万
展开全部
我之前做过,给个例子吧。
如果是JPG格式图片需要引用——use JPEG
然后定义
var
MyJPEG: TJPEGImage;
...
MyJPEG := TJPEGImage.Create;

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的,占用空间少。

什么只支持Jpeg的?Image只支持Bmp格式的,而数据库一般存储的是JPEG格式的,JPEG占用空间小(上面一行代码就是把JPEG转成BMP格式,再放到Image中)。
还有你存储的时候就应该存JPG的格式。
追问
上面的代码我看到过,我本来是想不用程序转化格式,直接存储,但是读取的时候出问题,因为TJPEGImage只支持JPEG格式
追答
存的时候也是存储JPG,取的时候取的也是JPG,不过显示的是bmp(因为Image只支持bmp)。如果是其它格式的,读取就会出错。
fushug
2012-07-07 · 超过25用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:47.1万
展开全部
image有一个PICTURE属性,加入你的Timage控件名字叫做Image1,那么 就是Image1.picture.
Graphic := bitmap(这个bitmap是你从数据库中读出的图片数据),就行了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抹布工程
2012-07-07 · TA获得超过163个赞
知道小有建树答主
回答量:459
采纳率:0%
帮助的人:136万
展开全部
ACCESS 本来就带 存储图片的功能,好像是用db控件吧 是把图片用二进制的方法转换的 你可以先自己研究研究下!
追问
access存储图片和读取图片都没问题,Image控件支持多种格式的图片,我的问题主要在从access读出来以后,如何将流数据变成图片加载到Image控件
追答
你可以直接用DBimage读取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆雪龙葵
2012-07-07 · TA获得超过114个赞
知道答主
回答量:123
采纳率:0%
帮助的人:42.4万
展开全部
少年,留下邮箱!
我用的是Delphi7
追问
123duan2009@163.com
追答
很久没上了,忘记给你发了,现在已发,希望问题已经解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式