在表单读取图像有没有更快的办法
我建了个查询表单,上面的诸多控件就不一一阐述了,就是image控件在读取图像时大约花了5-8秒,感觉有点慢,各位大侠给点意见吧。
表:c区.dbf 里面有个图像字段:字符型;20个字节,里面是图像路径。
image控件属性:基本是默认,只有stretch=2-变比填充
command1的click代码:
SELECT 图像 INTO ARRAY imgph FROM c区 WHERE 客户=rxht1 and 商标=rxht2 and 总称=rxht3 AND 型号=rxht4 AND 载量=rxht5
thisform.image1.Picture=imgph
thisform.image1.refresh
图像大小:6276*4969
[解决办法]
也许你的 c区 表中记录数非常大,时间主要是用在执行 sql 语句上
过滤条件优化一下,取数应该基本不需要时间
优化原则是看哪个字段比较具有唯一性,可能是客户字段吧,dbf 按此字段加索引
跟图片的大小也有关系,要缩放这样大的一张图片,vfp 处理也需要些时间,但这个应该没办法,除非你先用其他软件处理一次,缩小一些
[解决办法]
试着以下方法,看看能不能提速:
1、
INTO ARRAY imgph 改为 INTO Cursor _t1
thisform.image1.Picture=imgph 改为 thisform.image1.Picture=t1.图像
2、
stretch 改为 0 或 1
3、
你的图片(6276*4969)确实太大了,建议另存为小一点。
[解决办法]
可以用active控件,做到图标试试
[解决办法]
表"图像字段"应该只保存图像文件全名,比如:123456.BMP
thisform.image1.Picture=SYS(5)+SYS(2003)+"\"+c区.图像字段
这样就会加快图像显示
thisform.image1.refresh &&这行代码运行时,应该发生错误吧