注意:在 DELPHI 中使用 Imgedit 构件的拷贝和剪切功能时,会出现以下问题: 1、 如果把整幅图象都选中,没有任何问题; 2、 如果选择了局部区域,则拷贝和剪切的区域会发生漂移; 3、 如果 DELPHI 做的是 MS SQL 后端数据库的客户端界面,那么在把图象内容写 入数据库的图象字段中时,BDE(数据库引擎)会报错。这是 DELPHI3。0 和 4。 0 的 BUG,4。0 的升级包可以解决这个
问题。 至于第二个问题,可这样解决:在 Imgedit 的 onSelectionRectDrawn 事件中写 一段代码,把选择区域的边界值保存到四个全局变量中,在拷贝和剪切之前用先 前保存的变量再进行一次选择即可(当然,这一切都在后台进行的,见前面的例 子)。 开发环境:DELPHI4。0,HP ScanJet 4P 扫描仪;
在利用 Delphi 开发信息管理系统时,常常要处理图象,这也是信息
管理系统发 展的必然趋势。怎样在 Delphi 中通过扫描仪获得所需的图象信息呢?不外乎有 三种基本的方法:
1. 通过图象处理
软件,比如说 Photoshop 等,通过它们的扫描图象的功能,加工成一 定格式的图象后再在自己的系统中利用; 2. 通过扫描仪接口 Twain.DLL 。该接口是在安装扫描仪时提供的,它实际上是一个 Plugin 插件,它通过一系列函数来控制扫描仪; 3. 通过构件技术来控制扫描仪。
利用第一种方法能减少编程的复杂度,但是
系统的集成度不高,用户使用上也不 方便;第二种方法能在驱动程序级直接控制扫描仪,能在编程上提供最大的灵活 性和可控性;第三种方法能充分利用 Delphi 的可视化构件技术,安全、灵活、 自由地利用扫描仪。其实第三种方法也是建立在扫描仪接口 Twain.DLL 之上的。 本文论述的方法就采用第三种。 Windows9X 在其附件中提供了“映象”可选件,该附件是采用 OCX 构件来控制扫 描仪的,共有 imgEdit、imgAnntool、imgScan、imgAdmin 四个,有这四个构件 基本上就能完全控制扫描仪。在
Delphi 中的用法如下:
1. 在 Windows9x 中选择安装“映象”。 (在控制面板中选择“添加/删除
程序”,再选 择“安装 Windows”,点击“附件”复选框,然后从“详细资料”按钮中可以找到 “映象”) 2. 启动 Delphi,选择“Component”菜单项下的“Import ActiveX Control”,这时 可以看到
列表中有“Wang 图象编辑控制、 Wang 图象扫描控制、 Wang 图象管理控制、 Wang 图象缩略图控制”,选中这四项,然后点击“Install”按钮,这时在构件面 板上的 ActiveX 舌标下就可以看到这四个构件的图标。
ImgScan 的主要属性: FileType: 图象的文件类型 (该构件支持三种: TIFF, BMP, AWD);
ScanTo:返回或设置被扫描图象的目的;
可取值 0 (缺省) 1 2 3 4 5
注
意:如果取缺省值 0, 必须和 Wang ImgEdit 构件配合使用。
含义 显示被扫描的图象. 显示被扫描的图象并写入一个文件. 把图象写入一个文件 以模板方式把图象写入文件并显示. 以模板方式把图象写入文件 传真被扫描的图象
DestImageControl:Wang ImgEdit 构件名; Zoom:图象的放缩比例
ImgScan 的主要方法:OpenScanner :打开扫描仪; CloseScanner :关闭扫描仪; StartScan : 开始扫描; StopScan : 停止扫描
ImgEdit 的属性主要是控制扫描图象的分辨率、图象的宽高、是否允许对图象进 行局部选 择等;其方法主要有拷贝、剪切图象到粘贴板,从粘贴板复制图象, 旋转、放缩、 镜象图象;打印、保存、刷新图象等。 关于上述四个 OCX 构件的详细使用说明可在 Delphi 中查看其自带的帮助系统。 下面是使用这两个构件的一些例子:
procedure Tscanf.N1Click(Sender: TObject); begin ImgScan1.ShowSelectScanner; //选择系统中已安装的扫描仪 end; procedure Tscanf.N2Click(Sender: TObject);
begin imgedit1.zoom:=100; if //设置图象的放缩因子 not imgscan1.ScannerAvailable then