Delphi中直接操纵扫描仪的方法
在Delphi中,我们可以通过多种方法来获取所需的扫描仪图像信息。具体而言,有三种基本的方法可供选择。
方法一:使用图像处理软件
首先,我们可以使用图像处理软件(如Photoshop等)的扫描图像功能,将其加工成所需格式的图像,然后在自己的系统中使用。这种方法减少了编程的复杂性,但系统集成度较低,用户使用不方便。
方法二:使用Twain.DLL接口
第二种方法是通过Twain.DLL接口来控制扫描仪。该接口是在安装扫描仪时提供的,实际上是一个插件,通过一系列函数来控制扫描仪。这种方法在编程上提供了最大的灵活性和可控性。
方法三:使用构件技术
第三种方法是利用Delphi的可视化构件技术来控制扫描仪。这种方法安全、灵活且自由度较高,同时也是建立在Twain.DLL接口之上的。在Windows 9X中,附件中提供了四个OCX构件(imgEdit、imgAnntool、imgScan、imgAdmin),通过使用这些构件,我们可以完全控制扫描仪。
如何使用OCX构件
首先,在Windows 9X中安装"映象"可选项。在控制面板中选择"添加/删除程序",再选择"安装Windows",点击"附件"复选框,然后可以找到"映象"选项。启动Delphi,选择"Component"菜单项下的"Import ActiveX Control",可以看到列表中有"Wang图象编辑控制"、"Wang图象扫描控制"、"Wang图象管理控制"、"Wang图象缩略图控制"四个构件。选中这四个构件,然后点击"Install"按钮,这样在构件面板上的ActiveX舌标下就可以看到这四个构件的图标。
ImgScan构件的属性和方法
ImgScan构件有几个重要的属性,包括FileType(图像文件类型)、ScanTo(被扫描图像的目的)、DestImageControl(Wang ImgEdit构件名)和Zoom(图像的放缩比例)。此外,ImgScan构件还有一些主要的方法,如OpenScanner(打开扫描仪)、CloseScanner(关闭扫描仪)、StartScan(开始扫描)和StopScan(停止扫描)等。
ImgEdit构件的属性和方法
ImgEdit构件的属性主要用于控制扫描图像的分辨率、宽高以及是否允许对图像进行局部选择等。它还提供了一些方法,如拷贝、剪切图像到粘贴板,从粘贴板复制图像,旋转、放缩、镜像图像,打印、保存、刷新图像等功能。
使用示例
以下是使用ImgScan和ImgEdit构件的一些示例代码:
```delphi
procedure Tscanf.N1Click(Sender: TObject);
begin
; //选择系统中已安装的扫描仪
end;
procedure Tscanf.N2Click(Sender: TObject);
begin
imgedit1.zoom : 100; //设置图像的放缩因子
if not then //如果选择的扫描仪不可用
; //打开扫描仪
; //开始扫描图像
; //关闭扫描仪
end;
procedure Tscanf.N8Click(Sender: TObject);
begin
if ( and ) then
(selleft, seltop); //从剪贴板粘贴图像,参数为Imgedit的显示区域的起始坐标
end;
procedure Tscanf.N1801Click(Sender: TObject);
begin
if then
imgedit1.Flip; //镜像图像
end;
procedure Tscanf.N901Click(Sender: TObject);
begin
if then
; //向右旋转图像
end;
procedure Tscanf.N6Click(Sender: TObject);
begin
imgedit1.DrawSelectionRect(selleft, seltop, selwidth, selheight); //进行图像局部选择
(selleft, seltop, selwidth, selheight); //剪切所选区域
end;
```
需要注意的是,在使用Imgedit构件的拷贝和剪切功能时,可能会遇到以下问题:
1. 如果选择了整幅图像,没有任何问题。
2. 如果选择了局部区域,则拷贝和剪切的区域可能会发生漂移。
3. 如果使用DELPHI作为MS SQL后端数据库的客户端界面,并将图像内容写入数据库的图像字段时,可能会遇到BDE(数据库引擎)报错。这是DELPHI 3.0和4.0的一个BUG,但可以通过4.0的升级包解决。
对于第二个问题,可以在Imgedit的onSelectionRectDrawn事件中编写代码,将选择区域的边界值保存到全局变量中,在拷贝和剪切之前重新选择即可。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。