VFP处理JPG图像文件方法谈
位图是未压缩的图像文件,占用的存储空间很大空,而JPG图像文件是压缩的图像文件。因此,妥善保存和显示JPG等图像文件具有重要的实用价值。在VFP编程中,当需要保存图像文件时,通常以OLE模式将图像保存到一个通用字段中。当需要在表单中显示图像时,使用OLE绑定控件,并将其绑定到保存图像的字段。
上述方法在保存和显示位图时没有问题,但对于JPG、GIF等图像文件,不能显示图像,只能显示保存时的图像文件名。
6.0版中的Imgae控件支持bmp、gif、jpg、ico等图像文件格式,但不能绑定到保存图像文件的通用字段。本文采用的基本思想是:将图像文件保存在二进制Memo字段中,而不是保存在GENERAL字段中。当需要显示图像时,将Memo字段的内容输出到一个临时文件中,然后将临时文件名赋给图像控件中的Picture属性以显示图像。当打印和输出报告时,您也可以用类似的方式打印图像。
为了实现上述思想,本文提供了两个功能,一个是将图像文件保存到Memo域,另一个是将Memo域中的图像保存到外部文件。
以下过程文件将外部图像文件保存到二进制Memo字段中。Memo字段中图像的格式为:前128个字节保存原始图像文件名,后续数据为图像数据。
程序s-ftom
lparameter s—cfield,s—cfile
本地温度字符串
if vartype(s—cfield)!=″C″或vartype(s-cfile)!= " C "
= MessageBox("错误的参数类型!",48,“提示”)
返回. f。
结束条件
if类型(″&s—cfield″)!= " M "
= messagebox(“”+s-c field+“+”字段必须是二进制备注数据!”,48,“提示”)
返回. f。
结束条件
如果!文件—cfile
= messagebox ("file:"+s—cfile+"不存在!",48,“提示”)
返回. f。
结束条件
s-temp-str = PADR(just fname(s-cfile),128,′)+filetostr(s-cfile)
将(s-c field)替换为s-temp-str
return .T
endproc
0条评论