说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在Delphi中控制扫描仪

HTML文档下载 WORD文档下载 PDF文档下载
在Delphi中控制扫描仪

通过扫描仪接口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;

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扫描仪;

---- 附源代码。

unit scanu;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

Menus

ScanLib_TLB

ExtCtrls

AxCtrls

OleCtrls

ImgeditLib_TLB;

type

Tscanf = class(Tform)

MainMenu1: TMainMenu;

F1: TMenuItem;

N15: TMenuItem;

N1: TMenuItem;

N2: TMenuItem;

N16: TMenuItem;

N11: TMenuItem;

N5: TMenuItem;

C1: TMenuItem;

N4: TMenuItem;

E1: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N3: TMenuItem;

N10: TMenuItem;

N9: TMenuItem;

N1801: TMenuItem;

N901: TMenuItem;

N902: TMenuItem;

H1: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

ImgEdit1: TImgEdit;

Bevel1: Tbevel;

ImgScan1: TImgScan;

Bevel2: Tbevel;

procedure N4Click(Sender: Tobject);

procedure N1Click(Sender: Tobject);

procedure N2Click(Sender: Tobject);

procedure C1Click(Sender: Tobject);

procedure N8Click(Sender: Tobject);

procedure N1801Click(Sender: Tobject);

procedure N901Click(Sender: Tobject);

procedure N902Click(Sender: Tobject);

procedure N6Click(Sender: Tobject);

procedure N7Click(Sender: Tobject);

procedure ImgEdit1SelectionRectDrawn(Sender: Tobject; Left

Top

Width

Height: Integer);

procedure N11Click(Sender: Tobject);

private

{ Private declarations }

public

selleft

seltop

selwidth

selheight:integer;

{ Public declarations }

end;

var

scanf: Tscanf;

implementation

{$R *.DFM}

procedure Tscanf.N4Click(Sender: Tobject);

begin

imgedit1.ClearDisplay;

close;

end;

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.C1Click(Sender: Tobject);

begin

if imgedit1.ImageDisplayed then

begin

imgedit1.ClearDisplay;

imgedit1.zoom:=100;

end;

end;

procedure Tscanf.N8Click(Sender: Tobject);

begin

if (imgedit1.IsClipboardDataAvailable and imgedit1.ImageDisplayed )

then

imgedit1.ClipboardPaste(selleft

seltop);

end;

procedure Tscanf.N1801Click(Sender: Tobject);

begin

if imgedit1.ImageDisplayed then

imgedit1.Flip;

end;

procedure Tscanf.N901Click(Sender: Tobject);

begin

if imgedit1.ImageDisplayed then

imgedit1.RotateRight

end;

procedure Tscanf.N902Click(Sender: Tobject);

begin

if imgedit1.ImageDisplayed then

imgedit1.RotateLeft;

end;

procedure Tscanf.N6Click(Sender: Tobject);

begin

imgedit1.DrawSelectionRect(selleft

seltop

selwidth

selheight);

imgedit1.ClipboardCut(selleft

seltop

selwidth

selheight);

end;

procedure Tscanf.N7Click(Sender: Tobject);

begin

imgedit1.DrawSelectionRect(selleft

seltop

selwidth

selheight);

imgedit1.ClipboardCopy(selleft

seltop

selwidth

selheight);

end;

procedure Tscanf.ImgEdit1SelectionRectDrawn(Sender: Tobject; Left

Top

Width

Height: Integer);

begin

if ((width=0) and (height=0))then

begin

n3.Enabled:=false;

n6.Enabled:=false;

n7.Enabled:=false;

selleft:=left;

seltop:=top;

selwidth:=width;

selheight:=height;

end

else begin

n6.Enabled:=true;

n7.Enabled:=true;

selleft:=left;

seltop:=top;

selwidth:=width;

selheight:=height;

end;

end;

procedure Tscanf.N11Click(Sender: Tobject);

begin

if not imgedit1.IsClipboardDataAvailable then

if imgedit1.imagedisplayed then

imgedit1.ClipboardCopy(0

0

imgedit1.Width

imgedit1.Height);

end;

end.

美的+阿里,“云端”战略第一把火是智慧家居 对产业互联网战略的战术思考——争夺企业信息入口的战争 加入Cassandra,OpenStack发力DBaaS生态圈 死磕Google Keep,微软正式发布Mac免费版OneNote 《近匠》安管云CTO石磊:降维安全的开放平台 2014 Unity亚洲开发者大会·中国站讲师名单议题全部出炉 【独家专访】红旗Linux元老:猎猎红旗永飘扬 借助三大技巧 助你提升API状态页面 集成GemFire,Hadoop生态圈的又一把火 次世代光照体验:Unity 5面世,功能系统全升级 深入浅出,以咖啡店为例演示Web应用程序扩展 百度Clouda:可依赖的实时JavaScript开发框架 Oracle发布Java 8正式版及JDK 8 编程语言中一些令人抓狂的规则 廉颇未老,微软股价创14年新高 中国云计算大会PPT集萃(三):核心架构及应用实践 特性是增多了,但是Google的云服务仍然不温不火 全国云计算大数据创新项目评选活动正式启动 【独家专访】Perl发明者首次来华:将在OSTC大会分享其编程人生 腾讯核心创始人张志东半年后卸任首席技术官 改任终身荣誉顾问和学院讲师 咱们约会吧,Web设计师教你不一样的语言 开发者不容错过的10款免费JavaScript游戏引擎 付费授权、开放源码,全新虚幻引擎4正式发布! Larry Page未来计划:用科技创造美好生活 AWS 8周年,收入超四主要对手之和 分析:北京网络广播电视台私有云实践 腾讯云总经理陈磊分享微信云三步曲 十大技术,十家机构,从行业制高点一览大数据 【OSTC讲师专访】严旭:文艺豆瓣也很开源 大姨吗携手睿仁医疗 推智能体温贴Raiing 三个火枪手将重袭传统零售业 如何实现啊?---- 求一个函数! 50分,请大家帮忙寻找这个笔记本网卡驱动紧急求助(Fast Ethernet pc card) 求 Quoted-Printable,8bit编码方式的解码函数 菜COM:DELPHI如何独立编译,WAITING ONLINE 请求速答 请指点 但不知pb是怎么回事 在学之前要哪些基础准备? Authorware新家园,捧捧场哦 各位,那有候捷翻译的《windows 95系统大奥秘》的简体中文版可下啊 关于作用域 反对有些人以爱国或真理为名侮辱我们的政府!!!!! 但不知delphi是怎么回事 在学之前要哪些基础准备? 请问 SET XACT_ABORT ON 怎么用啊 散分!!分不够再加!!! 请问扩展名名为asp的文件怎么打开? [ZT]GOOGLE的彩蛋 看看,怎回事? Xsl:for-each进行循环,如何能从循环中退出!急急急!!!给分 怎样实现更新 DBGrid 选中的多行记录? 有人能帮我看看这个存储过程到底是为什么运行不了吗?晚上结 请教高手 :在一个bean内只能有一个结果集吗? 如何从表单radio中得到它的value值呀. 验证问题 还是没有解决windows NT密码丢失问题啊 求救呀,来看看,谢了 可否用程序动态改变机器名? 动态创建数据窗口的问题 怎么给那么多份啊,为什么我不能给阿 [RMI]为何说找不到stub类? 求购sniffer pro 的使用教程 第一次来水源,散分!! 倾尽家财只为一题,不吝赐教者奉送全部分数 SP1 激活问题,新手求助! 可以解释一下dll是什么吗? 第一次来水源,散分!!(2) 大哥大哥!!!!!!!!!!!!救命 我是初哥! 活动目录问题:如何实现这样的活动目录服务? 请问我在水晶报表里面要每页都显示报表页眉应该怎样设置?万分感谢! 郁闷啊!!学VC真的是太累了!! db文件格式 xp下有什么好的调试工具 名校科班出身的程序员进来聊聊目前的状况吧 大本营会员注册问题 俺给各位磕头了!!!只要能解决一个问题。。。。online waiting... 目前开发MS SQL Server 2000最好的工具是什么? 哪种前端开发程序较好? 程序传到了服务器上数据库连接字符串怎样改? C++bulider怎么没有vc++用的那么多啊 为我北京的女友祝福 如何多人协作开发一个应用程序? 关于在VFP中加载工具栏的问题。有意请进,小第50相送。 宗的拼音是什么?这个字 只能打 我拼音 如图,有三边分别为0.4m、0.5m和0.6m的三角形形状的铝皮,问怎样剪出一个面积最大的 二元一次方程,用加减消元法, 残圆怎么画出整个圆 如图,一块三角形的铁皮,BC边为4厘米,BC边上的高AD为3厘米,要将它加工成一块矩形铁皮,使矩形的一边FGBC上,其余两个顶点E,H分别在AB,AC上,且矩形的面积是三角形面积的一半,求这个矩形的长和宽 can you give me? 机械能守恒定律的题目一固定斜面的倾角为α,高为h,一小球从斜面顶端沿水平方向落至斜面底端,不计小球运动中所受的空气阻力,设重力加速度为g,则小球从抛出到离斜面距离最大所经历的时 在一块面积为45平方厘米的圆形铁皮上割出最大的7个相同圆铁片,问余下的阴影部分的面积式子要简单一些的 如何阻止树根生长家门口有个树根,树已经没了,树根还在生长,而且树根长的把门口的水泥地面都破坏了,怎么才能阻止树根继续生长?这个树根是不小,树干跟部的直径在40CM以上 建筑结构一道题,就是3.8那道 在一块面积为72平方厘米的圆形铁皮上割出最大的5个相同的圆铁皮,问余下阴影部分的面积是多少? 太空种树树根将怎么生长这是一道物理题.地球上生长的植物,根向地生长,茎背地生长,这是对重力的适应.那么,在飞船上呢?请对此进行猜测且简述理由、 一道题 求极限的问题. 在一块面积为45平方厘米的圆形铁皮上割出最大的7个相同的元贴片,问余下阴影部分的面积是多少? 树根向下生长和地球引力有关吗? 关于建筑结构问题我是初学者,如果一间四层高的私人住宅,二楼打算用大面积落地玻璃,从经济安全方面考虑是框架结构,砖混结构,还是混合结构好?我知道框架结构造价最贵,我还想知道它比砖 南宋爱国诗人___被捕时路过零丁洋进留下了_____________,______________.这句千古名句. 为什么树根朝地下生长,而不向天面生长? 建筑结构的一道问题 用括号中所给动词的适当形式填空.He said he ( )math at all.(not like)付讲解 粽叶越绿,粽子越新鲜? 海运SER什么意思 一位高三学生以恒定的速率从学校教学楼的一层上到四层,该同学上楼过程中,克服重力做功约为?600J或6000J 请问为什么是6000J? 一筐苹果苹果数是两位数,小民按七个七个数,还多四个.小丽按五个五个数,少四个.小华按三个三个数,还多一个.请你猜一猜这筐苹果有多少个?且写出你的解法过程. 这句话怎样理解张晓风的人生哲理是:在生命高潮的波峰,享受它;在生命低潮的波谷,忍受它:享受生命,使我感到自己的幸运;忍受生命,使我了解自己的韧度,两者皆令我喜悦.那么这段话怎么理 l like swam.But my brother -------(not like)it at all.用所给词的适当形式填空还有一题 I brush my --------(tooth)twice a day. 包粽子的粽叶是什么植物? 怎样理解这句话的 一道概率题目.麻烦高手指点.谢谢:)设随机变量(x,y)的联合密度函数为f(x,y)= 4.8y(2-x) (0 It's wise of you to give up smoking .帮帮忙翻译中文 你是怎样理解这句话的 打码中的吃票是什么意思拜托各位大神 吃了硫酸铜泡的粽叶包的粽子会怎样?怀孕七个月了,宝宝有危害吗? 填空(建筑物的结构)大神们帮帮忙请把填这些建筑物分类:民居,高楼大厦,电视塔,客家土楼,桥,石亭子 例:薄壳JIEGOU的有:石亭子.1.框架结构的建筑物有:( ).2.实习结构的建筑物有 .3.{ }结 “粗心妈妈”教你如何辨别led护眼台灯有无频闪和辐射? 制作手工皂的碱是什么样的?怕选错了.是块状的还是粒状的?还是水状的...哪种才是做手工皂的?我不知道.还有家用的食品的那种粉状的是不?分析纯96%的好,还是99%的好? 建筑中的发券该如何理解?与拱顶结构有什么关系? 中华牌香烟一侧的打码是什么意思? 手工皂碱加少了怎么办过了一个月手工皂都还是软软的,油油的,要怎么办?扔了又好象太浪费了,都是好油啊. 英语翻译Personal factsOn the first day of class,Tom's teacher asked class to fill the out a form.The information always helped her get to know her students.Tom filled out the form like this. Full name:Thomas Smith 这句话怎么理解?The educational systems are entirely different and attempts to compare them must be done on a strictly provisional basis.这句话中provisional 是暂时的意思,但是整个句子应该怎么理解? 手工皂碱放少了怎么办?做的纯橄榄皂,减碱10%,做出来皂皂很软,还总是油油的, 请问这是什么东西,有药用价值吗? 这句话你怎么理解? 手工皂里的碱可不可以用别的代替?我们这里买不到碱,能不能用别的东西代替? 谁能告诉我这是什么,有药用价值吗...根有点像 2 交流电24V变压器是不是接哪根线都可以没有正负极 制作手工皂用的碱,在哪里可以买到? 梧桐有什么药用价值作用麻烦告诉我 海关验货的问题前阵子我出口到西哈努克三个高柜,遇到海关验货,可最后说给两个验货员每人500RMB的验货费就免验,当时我给货主说了货主就给了,请问怎么回事啊 海关验货的可以私自收好处 before you give up,you must be pick up. 豌豆的药用价值,豌豆不能与什么同食 因为海关查验没赶上船期,所以产生了延滞费用如题,请问这些延滞费用是如何计算的?1个20的普柜和2个40的高柜. 把 The work must be give up 改为否定句 The work () () give up 39 English 42用所给动词的适当形式填空 1.There ______ [be]no food in the fridge this morning. 2.The young man _____ [get] the book therr days age. 3.The foreigners __ 曹妃甸湿地公园介绍 要文字,可以有图,但文字介绍必须多!不要怎么去湿地公园,更不要写曹妃甸湿地!湿地和湿地公园是有区别的!唐海湿地公园! 中译英,一句话!拒机译!由于海关与其它公司的货柜一起扣押验货直到昨天才放行,我们已安排最快的船期 如图 在矩形ABCD中E F 分别为边AB AD中点 现将三角形ADE沿DE折起 得四棱锥A-BCDE求证 EF∥平面ABC she has no paper ________.a.to writeb.writing onc.to write on选C对吗,to write on这里的on 能去掉吗,这是什么结构为什么不能去介词呢 等腰梯形ABCD,AD∥BC,AB=DC=1,∠B=60,AC平分∠BCD (1)求梯形ABCD周长 (2)求梯形ABCD面积 沙特阿拉伯或因美对叙立场而限制与美国淘金者福音:澳科学家发现可依靠树木寻调查显示韩国人结婚费用高 平均至少3美国男子冲浪遭遇鲨鱼 用拳击技巧击将欧洲盗贼偷多幅世界名画 称怪艺术馆安东京警视厅一警官因涉嫌唆使少女卖淫遭新加坡消费者花数万元上金融课讲师竟是调查:23%美国人通过交友网站找到另中国多地雾气仍未散 内蒙古等地将迎来吉林省雾霾渐退影响仍持续 学校停课面东北三省史上最严重雾霾仍将持续 长春第一作者:格鲁吉亚德马尼西头骨化石价美国空军军官打盹致核导弹库防护门曾多斯里兰卡一化工厂发生毒气泄漏导致72加拿大卡尔加里市长胜选连任 笃信伊斯美国首家厕所主题餐厅开业 真马桶上阵外媒:日本也流行“土豪金”苹果发布新款平板电脑iPad Air日本猫站长阿玉担任“粉红丝带”宣传大浙江温州一在建祠堂坍塌致7人受伤浙江海事局下放海员证和油污保险证办理五一济铁加开3对临客慕思荣获中国驰名商标半成品电动汽车公路上危险试车春雨润泉城韩失事客轮上有两名中国人鲁能漫山香墅家居风水讲座成功举办人保人寿分别承办各市居民大病保险潍柴换新标识先比拼,再血拼!长安铃木于本周末举行闭馆团购会济南明年底基本能抵御6级地震韩国一对准夫妻双双在“岁月”号沉没事垃圾短信非法月进账300多万大额救助金缴费标准调至每人每月8元小小画童“占领”西餐厅济南名人名篇诵读会周日举办举世瞩目《齐鲁文化收藏经典》震撼发行今年我省打黑除恶圈定三领域工作不力者为防燃气泄漏,省城启动铸铁燃气管道改南方海参冒充辽参,营养价值差异大下周五,邀您畅谈网络创业
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘