扫描仪二次开发

SuperForm 2002-05-09 10:14:18
各位大侠有谁知道扫描仪二次开发的相关资料,望告之。多谢了。
现在的项目要求把扫描仪的各种设置如亮度,对比度,等在一个界面里完成。主要是提高扫描的速度,要求不打开其他界面来设置这些值,我找不到几个控件的帮助文档
imgEdit,imgScan等的帮助资料在哪里能找到,还有富士通的ftscn2.ocx的帮助文档
...全文
752 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
softwing 2002-05-09
  • 打赏
  • 举报
回复
procedure Tscanf.N901Click(Sender: TObject);
begin
if imgedit1.ImageDisplayed then
imgedit1.RotateRight //向右旋转图象
end;
procedure Tscanf.N6Click(Sender: TObject);
begin
imgedit1.DrawSelectionRect(selleft,
seltop,selwidth,selheight);//进行图象局部选择
imgedit1.ClipboardCut(selleft,seltop,
selwidth,selheight);//剪切所选区域
end;


---- 注意:在DELPHI中使用Imgedit构件的拷贝和剪切功能时,会出现以下问题:
---- 1、 如果把整幅图象都选中,没有任何问题;

---- 2、 如果选择了局部区域,则拷贝和剪切的区域会发生漂移;

---- 3、 如果DELPHI做的是MS SQL后端数据库的客户端界面,
那么在把图象内容写入数据库的图象字段中时,BDE(数据库引擎)会报错。
这是DELPHI3。0和4。0的BUG,4。0的升级包可以解决这个问题。

---- 至于第二个问题,可这样解决:在Imgedit的onSelectionRectDrawn事件中写一段代码,
把选择区域的边界值保存到四个全局变量中,
在拷贝和剪切之前用先前保存的变量再进行一次选择即可(当然,这一切都在后台进行的,
见前面的例子)。

---- 开发环境:DELPHI4。0,HP ScanJet 4P扫描仪;

---- 附源代码。 http://www.ccw.com.cn/99/tips/9911/111903_05a.asp
softwing 2002-05-09
  • 打赏
  • 举报
回复
转贴一篇给你参考:
实用技巧
在Delphi中控制扫描仪

天津师范大学 曹进军
http://www.ccw.com.cn/99/tips/9911/111903_05a.asp

---- 在利用Delphi开发信息管理系统时,常常要处理图象,
这也是信息管理系统发展的必然趋势。怎样在Delphi中通过扫描仪获得所需的图象信息呢?
不外乎有三种基本的方法:

通过图象处理软件,比如说Photoshop等,通过它们的扫描图象的功能,
加工成一定格式的图象后再在自己的系统中利用;

通过扫描仪接口Twain.DLL 。该接口是在安装扫描仪时提供的,
它实际上是一个Plugin插件,它通过一系列函数来控制扫描仪;

通过构件技术来控制扫描仪。
---- 利用第一种方法能减少编程的复杂度,但是系统的集成度不高,用户使用上也不方便;
第二种方法能在驱动程序级直接控制扫描仪,能在编程上提供最大的灵活性和可控性;
第三种方法能充分利用Delphi的可视化构件技术,安全、灵活、自由地利用扫描仪。
其实第三种方法也是建立在扫描仪接口Twain.DLL之上的。本文论述的方法就采用第三种。
---- Windows9X在其附件中提供了“映象”可选件,该附件是采用OCX构件来控制扫描仪的,
共有imgEdit、imgAnntool、imgScan、imgAdmin 四个,
有这四个构件基本上就能完全控制扫描仪。在Delphi中的用法如下:

在Windows9x中选择安装“映象”。(在控制面板中选择“添加/删除程序”,
再选择“安装Windows”,点击“附件”复选框,然后从“详细资料”按钮中可以找到“映象”)

启动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
//如果选择的扫描仪不可用
imgscan1.OpenScanner;//打开扫描仪
imgscan1.StartScan; //开始扫描图象
imgscan1.CloseScanner; //关闭扫描仪
end;


procedure Tscanf.N8Click(Sender: TObject);
begin
if (imgedit1.IsClipboardDataAvailable
and imgedit1.ImageDisplayed ) then
imgedit1.ClipboardPaste(selleft,seltop);
//从剪贴板粘贴图象,其参数为Imgedit的显示区域的起始坐标
end;

procedure Tscanf.N1801Click(Sender: TObject);
begin
if imgedit1.ImageDisplayed then
imgedit1.Flip; //镜象图象
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧