![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
|||||
| Powerbuilder6.0图象处理技 | |||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-8-16 ![]() |
|||||
|
在Powerbuilder6.0程序中有时要用到BMP图象文件,比如人事系统中人员的相片、用扫描仪扫描进去的人事档案等等。但在Powerbuilder6.0中,没有直接的方法将BMP文件读入内存并显示或写入到数据库中。但Powerbuilder支持二进制文件的读写操作,可将BMP文件整个读入BLOB类型的变量中来实现,现在经下面两个例子来讲解
例子一、图象的显示 步骤如下: 1 取得位图文件名。 2 取得文件长度。 计算要用fileread函数读文件的次数(一次最多只能读32K数据) 3 打开文件 使用FOR循环将文件中的数据读入到BLOB变量中 4 建立一Picture控件 5 使用SetPicture函数显示BMP图象 现在编写程序代码 PowerBuilder要求每个应用程序的启动(Open)事件中具有一定代码,进入应用程序绘图器,在此例中我们为pic应用程序的Open事件中添加以下代码: open(w_pic) //打开程序窗口 在W_pic窗体中建立一个“选择并显示位图”的按纽控件和建立P_1(Picture控件) 在“选择位图”的按纽控件的“open”事件中写入如下代码: /* 本 段 代 码 将 读 取 一 个 超 过327680字 节 的 文 件, 这 个代 码 可 以 用 以 读 取Text 文 本 和Bitmap 图 象。*/ (“//------ //*****” 中间为注解的内容) String Ls_path,ls_file,ls_parms,ls_dir,ls_command integer ls_num,ls_cs,i integer fh, ret blob is_pic_blob blob{327680} ls_blob //必须指明ls_blob的大小 string defext = "BMP" string Filter = "bitmap Files (*.bmp), *.bmp" ulong nbr,ls_len ret = GetFileOpenName("Open Bitmap", ls_path,ls_name, defext, filter) //选择获取打开的位图文件 IF ret = 1 THE /p> ls_len=filelength(ls_path) //取得文件的字节长度 //------计算出读取文件的次数 ls_cs=ls_len/(32*1024) if mod(ls_len,32)=0 then else ls_cs=ls_cs+1 end if //***** ls_num=FileOpen(ls_path,StreamMode!) //打开选取的文件
//------循环将文件中的数据读入到BLOB变量中 IF ls_num$#@60;$#@62; -1 THEN nbr=1 for i=1 to ls_cs fileread(ls_num,is_pic_blob) nbr = BlobEdit(ls_blob,nbr,is_pic_blob) next //*****
p_1.SetPicture(ls_blob) //显示位图 FileClose(ls_num) end if END IF
在此例子的基础来实现怎么在程序中将照片存入数据库之中 例子二、在程序中将照片存入数据库之中 数据库进行写入和后台数据库有关:以SQLANYWAY为例:一般用 UPDATEBLOB 和 SELECTBLOB 两个SQL语句来实现。 在本例中我们只是简单地执行位图的存入与取出操作,所以程序窗口也比较简单。其功能是通过“位图入库”按纽来选择写入数据库的图象,写入数据库的图象可以通过点击一旁的便列表来显视。 首先在应用脚本中连数据库及运动运行窗口: SQLCA.DBMS =ProfileString("regedit.ini","INI","dbms"," ") 在W_pic窗体中建立一个“位图入库”的按纽控件,数据窗口控件(用于选择显视的图片)和建立P_1(Picture控件) 在窗体W_pic的"OPEN"脚本中写入:
在“位图入图”的按纽控件的“click"脚本中写入:
9
7
3
1
2
4
8
:
|
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|