如何向表单中备注型字段添加照片? 80

我现在正在设计一个照相程序,通过摄像头拍照,把照片保存在通用型字段里,再通过报表文件打印出来。我的做法是这样的:先点击一下表单中插入照片处,然后点击“编辑”工具栏下的“插... 我现在正在设计一个照相程序,通过摄像头拍照,把照片保存在通用型字段里,再通过报表文件打印出来。
我的做法是这样的:先点击一下表单中插入照片处,然后点击“编辑”工具栏下的“插入对象…” 选项,在随后出现的对话框中选择“位图图像”选项,再在随后出现的画图里点击“编辑”工具栏下的“粘贴来源…”选项,随后出现“粘贴来源”对话框,这样选择图片后就能把图片保存到通用字段,而且报表中也能显示图片,但是太麻烦了。能用不用一条命令或一段程序就能实现上述功能?
现在虽有三种方法却无法实现上述功能:
(1)在添加照片按钮的单击事件下写入如下程序:
lcFile=GetPict()
APPEND GENERAL 字段名 FROM lcFile
有时能用但是只出现图标,不出现照片;有时运行时又出现“OLE 错误0x8000fff”提示。
(2)在添加照片按钮的单击事件下写入如下程序:
lcFile=GetPict()
Replace 照片 With lcFile
ThisForm.Refresh
运行时出现“数据类型不匹配”错误提示。
(3)用个字符型字段来保存这个图片的路径,用Image控件的Picture属性显示,但是这样报表中就无法显示图片了。
请问用用什么命令或程序才能实现上述功能?请各位高手们不吝指教,不胜感激!
我用的是VF语言
展开
 我来答
百度网友4d1d0b5a2
2009-12-27 · TA获得超过354个赞
知道答主
回答量:82
采纳率:0%
帮助的人:72.9万
展开全部
不管是用什么数据库,存放图片的字段你采用字符类型,这一点肯定是不对的。而且,你没说明使用的数据库类型,采用的语言是什么;
下面是C++的处理方法:
下面这段程序用于将数据库中的图片读入到Image中:

((TBlobField*)(ADOQuery1->FieldByName("lk_sfz_photo")))->
SaveToFile("linshi2.jpg");
Image1->Picture->LoadFromFile("linshi2.jpg");
Image1->Width=Image1->Picture->Width;
Image1->Height=Image1->Picture->Height;
Image1->Visible=true;

下面这段程序用于将Image中的图片写入到数据库:

if(bLoadImage==true){
TMemoryStream *pms=new TMemoryStream();
TJPEGImage *jpg=dynamic_cast<TJPEGImage*>(Image1->
Picture->Graphic);
if(jpg!=NULL)//是JPEG类型的图像
jpg->SaveToStream(pms);//将图像数据写入内存流
else//是位图
Image1->Picture->Bitmap->SaveToStream(pms);//将图像数据
//写入
//内存流
//从内存流中装载图像数据
((TBlobField*)(ADOQuery1->FieldByName("lk_sfz_photo")))->
LoadFromStream(pms);
delete pms;
}
ADOQuery1->Post();

上面的代码需要在前面加载两个包:

#include <io.h>
#include <jpeg.hpp>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式