ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:24.94KB ,
资源ID:4230977      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4230977.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(twain协议驱动下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

twain协议驱动下载.docx

1、twain协议驱动下载竭诚为您提供优质文档/双击可除twain协议驱动下载篇一:twain驱动详解twain驱动详解twain工作组是一个非盈利的国际组织。它旨在提供一个统一的标准接口,通过该接口就可以实现应用程序与图像输入设备间的通讯。其实该标准目前已经成为了应用程序与图像输入设备间通讯的事实标准。twain的文件组成twain共包括4个二进制文件。如果要使用该接口,就必须要保证他们被成功地安装在本地计算机上。文件名twain_32.dll32位应用程序的支持文件,32位程序使用twain通讯必须使用该文件。twain.dll16位应用程序的支持文件,16位程序使用twain通讯必须使用该文

2、件。twunkeR_32.exe实现32位应用程序与32位数据源进行通讯,它运行时不可见。twunkeR_16.exe实现32位应用程序与16位数据源进行通讯,它运行时不可见。注意:在windowsnt环境下16位数据源不能够正常工作。在windows操作系统中(windows9x/2000/xp),microsoft已经把这些文件作为系统文件随同操作系统一起发布了。你可以在windows安装目录中查找到这些文件。如果我们要编程来实现对twain的访问,还需要最重要的头文件。你通过访问该http:/www.twain.org/devfiles/twain.h地址来获得twain提供的头文件。好

3、了,现在就让我们来了解一下twain的结构吧。twain的结构twain依靠三个组件协同完成与图像设备的通讯和数据传输工作,这三个组件就是application、sourcemanager和source。组件说明application就是你要编写的应用程序。sourcemanager是由twain提供的一个source的管理器,它不仅可以收集本地系统已经安装了的图像设备,还可以根据需要去加载设备。同时,它最重要的功能是担任application与source通讯的桥梁。(其实,它就是我们前面提到的组成文件中的dll文件。)source在这里可以看作是图像设备。事实上它是由设备厂家提供的一个dl

4、l文件。这个dll文件是支持twain接口的。(该文不讨论关于twain在source中的应用。)它们的层次结构图如下:从该图我们可以看到,application要从source获得图像数据,必须通过sourcemanager传递来实现。application与sourcemanager间的通讯是靠调用twain提供的dsm_entry()函数实现。而application不能直接与source通讯,sourcemanager与source间的通讯是靠调用twain提供的ds_entry()函数实现(在这里,我们不用关心sourcemanager如何去调用ds_entry函数。)。twain的

5、用户界面当我们使用twain接口去获得图像数据的时候,会涉及到一些的用户界面,首先是我们的应用程序界面,然后是sourcemanager提供的用户界面以及图像设备(source)所提供的用户界面。这些用户界面如下:在我们的应用程序中,可以通过“选择设备”来打开sourcemanager的标准用户界面。sourcemanager的界面由sourcemanager提供。在这个界面中可以让用户选择他想要使用的图像设备。选中想要的设备后,再通过“获取”来打开图像设备(source)提供的用户界面进行现应的操作。(注:source提供的界面会因为你使用的图像设备不同而有差异。)对于这些界面,twain提

6、供了非常灵活的处理方法。对于sourcemanager提供的用户界面以及图像设备(source)所提供的用户界面,我们可以选择是否显示它们,甚至我们还可以按自己的要求去改写这些用户界面。twain的接口函数要编写应用程序实现与支持twain标准的图像设备通讯,只需要了解上面提到的dsm_entry()接口函数。twain定义了大约140个操作消息。你只要把这些消息通过dsm_entry()函数发给sourcemanager,就可以实现对选定的source进行相应的操作。sourcemanager会分辨那些消息属于自己,那些消息是该转发给source。在介绍dsm_entry()前,我们先来了解

7、一下的twain定义的消息格式。twain把它定义的操作称为triplets操作,就是每个操作用三个定义的参数来表示。这个三个参数用不同前缀名来区分。每个triplets操作都是唯一的,不会有歧意,它们代表一个特定的操作行为。这三个参数类型分别是datagroup(前缀名dg_)、dataargument(前缀名dat_)和messageid(前缀名msg_),每个参数都包含有各自的信息。比如:dg_contRol/dat_paRent/msg_opendsm就表示一个打开sourcemanager的操作,这些参数在twain.h中都有定义。其他的操作(设置扫描仪的分辨率、获得设备支持的功能等

8、等)你可以去查看twain的参考手册,我将在后面编程应用中介绍几个最常用的操作。现在,我们明白了twain定义的triplets操作,但是这还不够。在使用dsm_entry()前,必须要加载twain_32.dll文件以获得dsm_entry()函数指针。(注意:在你程序中应该添加前面提到的twain.h头文件哦!)dsmentRypRoclpdsm_entry;/*dsm_entry入口函数的指针hmodulehdsmdll;/*twain_32.dll句柄/*加载twain_32.dll文件(twain协议驱动下载)if(hdsmdll=loadlibrary(twain_32.dll)!

9、=null)if(hdsmdll)/*检查twain_32.dll是否加载if(lpdsm_entry=(dsmentRypRoc)getprocaddress(hdsmdll,makeintResouRce(1)!=null)/*成功获得dsm_entry()函数指针;现在我们明白了,twain所有的操作都是通过dsm_entry()函数来实现的,所以了解该入口函数很有必要。它定义如下:tw_uint16FaRpascaldsm_entry(ptw_identityporigin,/*指向操作发起者的指针ptw_identitypdest,/*指向目标对象的指针tw_uint32dg,/*t

10、riplets操作的dg参数:dg_xxxxtw_uint16dat,/*triplets操作的dat参数:dat_xxxxtw_uint16msg,/*triplets操作的msg参数:msg_xxxxtw_memReFpdata/*指向返回数据块的指针);其中dg、dat、msg参数表示一个你想执行的triplets操作。porigin表示发起triplets操作的对象。pdest表示接收triplets操作的对象。pdata用于获得执行triplets操作后返回的数据。对于每个triplets操作,都是由dg、dat、msg三个参数组合构成的。porigin、pdest参数会根据不同的t

11、riplets操作,而使用不同的值。函数执行后会返回一个值来表示操作是否成功。如果返回值为twRc_success表示操作成功,twRc_FailuRe表示操作失败。同样根据triplets操作的类型不同,还会有其他的返回值。比如twRc_cancel、twcc_lowmemoRy,具体信息你可以参考twain的说明手册。twain的操作流程application、sourcemanager和source要实现数据传输,必须遵循一个操作流程。你要进行的操作应该在这个流程规定的动作队列中按逻辑去执行。比如,在没有加载sourcemanager前,application是不能要求source传输数

12、据的。为了更好的去描述这个流程,twain为该流程定义了7个状态(1-7)。不要以为整个流程很复杂,只要记住这些下面这些状态位,对于理解流程和以后的编程应用都是很有用的。l状态位1,2,3这几个状态是用于描述sourcemanager的,它们是sourcemanager专有的状态位,所以sourcemanager的标志位是不会大于3的.l状态位4,5,6,7这几个状态是source专有的。如果source打开了,source的标志位就不会小于4;如果source关闭了,source就没有了标志位。要注意,我们的应用程序可以使用了多个source,每个与source的连接都是一个单独的会话,对于

13、打开的每个source,他们的标志位都是相互独立的,不互相关联。现在就来看看流程图。流程标志位说明状态1准备会话在application和sourcemanager建立会话前,sourcemanager的标志位是1.在这个时候,sourcemanager还没有被加载到内存中。如果sourcemanager被加载到内存中,则状态位是2或者3。状态2加载sourcemanagersourcemanager现在已经被成功地加载到了程序中,但是没有打开sourcemanager。在这个时候,sourcemanager开始准备去接受application的triplets操作。状态3打开sourcema

14、nagersourcemanager已经打开并且准备去管理source.sourcemanager现在准备向source发送打开操作,去打开指定的source,并等待所有针对source的操作结束后,去关闭打开的source.sourcemanager在会话关闭前,状态位将保持为3.当application打开的source没有关闭时,sourcemanager会拒绝关闭。状态4打开source在响应application的一个指定的triplets操作后,source被加载到系统中,并且被sourcemanager打开。source在加载前将检测是否有足够的系统资源让自己运行(内存、设备是否

15、可用等等)。application不仅可以查询source的性能参数(当前解析度、是否支持彩色或黑白图像、自动文档传送是否可用),application还可以去设置的source的性能参数。比如,application可以要求source按指定的分辨率传输黑白图像。注意:可以在source的状态位是4,5,6,或7时,去查询source的性能参数。但是要想设置source的性能参数必须在状态位是4的时候设置,除非application和source有特殊的约定,否则在标志位为其他数的时候都不可以进行性能参数设置。状态5source可用现在可以让source工作了,此时source开始为数据传输

16、做准备。在该状态下,可以执行一个triplets操作,用以选择是否让source显示它自己的用户界面(source提供的软件界面)。当source准备好给application传输数据时,标志位就从5变为6了。状态6准备数据传输篇二:twaindriver操作指南(简体)twaindriver操作说明操作说明:1.1主窗口1.选择twain来源:开启任一个支持标准twain接口的软件,如microsoftword20xx;打开word20xx依次选择“插入”-“图片”-“来自扫描仪或照相机”,弹出图1-1对话框,选择twain来源设备“Videograb”-“自定义插入”后将出现图1-2所示t

17、wain主窗口。(此部份与各软件的接口有关,可能会有不同)图1-12.主窗口组成:twain接口程序主窗口如图1-2所示,由工具栏、视频窗口等部分组成。图1-21.2twain工具栏说明twaindriver工具栏位于主窗口下面,如图2-1所示。图2-1功能介绍1.拍照模式:主要分为三种模式。1)普通拍照2)旋转拍书:点击:点击按钮拍照。按钮,拍取书的第1页,然后旋转书180度后按钮,依次类推,每拍一页就旋转一次,最后点击拍第2页,再点击按钮结束拍书。3)奇偶页拍书:点击按钮点击按钮开始奇数页拍书,按钮结束奇数页翻拍顺序为第1页、第3页、第5页点击拍书,程序自动将转换成,将书籍旋转180度,开

18、始偶数页拍书翻拍顺序为第6页、第4页、第2页。拍完最后的偶数页时,自动结束成批翻拍。2.拍照页码page:显示当前拍照页码数,拍照后页码自动增加。3.预设参数:将先前保存的设置进行导入,每次调用系统默认导入前一次的设置。4.图像旋转:分为四个方向。1)缺省:视频窗口的图像保持拍摄仪的固有方向。2)左旋转90:将视频窗口的图像向左旋转90。3)右旋转90:将视频窗口的图像向右旋转90。4)右旋转180:将视频窗口的图像旋转180。5.定时拍照seconds:在拍照多张图时,可以设定一定时间进行定时拍照,第一张需手动拍照,停止请按停止拍照按钮。6.aF对焦设置:屏蔽、视频像质、aF自动对焦等属性设

19、置(aF选项需aF型号拍摄仪支持)。详见1.57.彩色与黑白格式1)黑白将图像保存为黑白格式,默认文件类型为.tif。2)彩色将图像保存为彩色格式,默认文件类型为.jpg。8.综合设置:Videochannelcontrol设置,里面包括常用、图像、成批翻拍、屏蔽、拍摄器参数、视频像质、aF自动对焦、twain按钮等属性设置(详见1.5)。9.停止遮罩与停止放大:当视频开启后,遮罩与放大功能将自动开启。单击按钮后,遮罩与放大将被停止,恢复原状。1)遮罩:在视频窗口里,点击左键不放,拖动鼠标出现红色矩形截取框,划出所要截取的矩形,松开左键后,取得所要截取的范围。如果要还原原来的图片范围,再单击左

20、键,或者点击按钮,视频窗口恢复原状。2)放大:在视频窗口里,点击右键不放,拖动鼠标,松开右键后,就放大相应的区域。如果要还原原来的图片大小,再单击右键,或者点击口恢复原状。10.拍照scan:准备就绪,就可以开始拍取图像。11.停止拍照:结束本次拍摄工作,下次再进行拍照将生成新的图像文件目录。按钮,视频窗1.3其它设置1.3.1向视频窗口左上角拖动鼠标:弹出选择视频来源的设置。如图3-1所示。1)视频来源类型:simpleonechannel2)视频拍摄仪:newimagesupercam3)截取视频、视频屏蔽、几何变化三个选项必须勾选,进行普通拍照其它参数默认,“确定”完成视频源设置图3-1

21、1.3.2向视频窗口左下角拖动鼠标:弹出Videochannelcontrol设置,里面包括常用、图像、成批翻拍、屏蔽、拍摄器参数、视频像质、aF自动对焦、twain按钮等属性设置。如图3-2所示。下面简单介绍对话框各按钮功能,详细请参考1.5视频处理对话框。1)常用:设置目标dpi、保存参数、改变图像格式(黑白、灰度、彩色)等功能2)图像:设置视频分辩率等3)成批翻拍:设置图片保存位置、文件类型、键入文件名、生成多页tiFF文件等4)屏蔽:勾选激活有效区域复选框,设置有效区域在x、y方向上的相对最大区域的比例,屏蔽被拍资料页面以外的区域,调整合适后关闭该窗口。5)拍摄器参数:设置自动增益ag

22、c、自动曝光调整aec、自动白平衡功能awb。6)视频像质:设置gamma等。7)aF功能:aF调焦功能,仅自动对焦型号有此选项。8)twain按钮:设置twain工具栏对应按钮是否开启、拍摄后图像处理方式(此功能每次拍照任务完成后需按停止拍照按钮方可生效)图3-21.3.3向视频窗口右上角拖动鼠标:弹出Videosource属性对话框,用来设置拍摄仪的硬件参数,包括明亮、对比、彩度、饱和、锐利度以及曝光值。如图3-3所示。a)c)e)f)brightness:调整视频亮度hue:调整视频的色调sharpness:调整视频的阴影exposure:调整视频的曝光时间b)contrast:调整视频

23、的对比度d)saturation:视频的饱和度图3-3小提示:光源较稳定时,在呈像稳定清晰后,可关闭自动曝光expsure功能(去掉exposure复选框),以后开启多易拍时呈像速度将大大提高,如果光源发生变化导致偏色等现象可再开启自动调节功能然后重复前面步骤。1.3.4向视频窗口右下角拖动鼠标:弹出屏蔽,视频像质,aF自动对焦等属性设置(aF选项需aF自动对焦型号拍摄仪支持,使用自动对焦功能时对焦区域小矩形框最好对准文字部分)。如图3-4所示。图3-41.4热键说明alt-enter拍照alt-end停止拍照alt-F1普通拍照模式alt-F2旋转拍书alt-F3奇偶页拍书篇三:扫描扫描的部

24、分代码及方法1twain和wia两个驱动的区别twain是一项重要的接口标准,为软件开发商和硬件设备生产厂商之间提供了一个统一的规范,以有效地避免系统及设备之间的不兼容问题。在计算机发展初期,计算机与周边外围设备之间没有任何接口标准,每一种硬件设备需要与计算机相连时,必须针对系统开发相应的驱动模块。由于扫描仪型号的不同,每种扫描仪都有自己相对应的驱动方式和指令集,扫描仪厂商必须为每一款扫描仪编写相应的驱动模块。这不仅费时费力,而且由于新的扫描仪不断推出,驱动模块的开发始终处于被动地位。同时,随着软件的不断发展,扫描仪厂商也面临着设备是否支持丰富的应用软件的问题。另一方面,从软件开发商的角度来看

25、,软件的开发如果缺少硬件设备的支持,势必会使得软件的应用范围受到极大的制约,限制软件的普及和发展。因此,由于软、硬件的迅速发展,不管是硬件生产厂商还是软件开发商,都迫切需要建立专门的标准,以方便硬件设备和应用系统软件之间的信息数据传输和交换。twain标准就是在这个背景下应运而生的。twain标准的建立,为软件开发商和硬件生产厂家提供了统一的连接规范,避免了重复开发和系统设备不兼容的问题。wia是windowsimageacquisition的缩写,可直接翻译为:windows图像采集系统。这是windowsxp加入的一个新功能,该功能主要包括了indowsxp对图像设备的支持以及对图像信息的

26、处理编辑等功能。微软公司可以说是靠图形界面的操作系统windows而发家的,但具有讽刺意味的是,长久以来,windows在图形图象处理领域内却无可以称道的亮点。记得早几年用扫描仪,驱动程序是由厂家开发的,应用程序也是厂商附送的。那时,windows里面与图形处理沾边的程序,大概就是那个解决不了多大问题的“画笔”了。也许是认为市场已经成熟。也许是大而全的方针使然,在windowsxp中,微软引入了wia体系,使windows操作系统在支持图形图像处理方面有了很大飞跃。wia是windowsimageacquisition的缩写,即windows图像采集系统。该系统涵盖了从图形采集设备支持到编辑排

27、版打印的整个过程。wia有点类似于twain的标准。它也是要求硬件厂商、软件开发商在开发新产品时,遵守这个标准,以避免了重复开发和系统设备不兼容的问题。2扫描例子:1.先从网上下载kodak组件,总共有十来个.dll.ocx文件,我们只需用到其中的两个就ok了。2.打开你的项目,先引用imgedit.ocx和imgscan.ocx。(如果引用时有问题,得在“运行”里用命令“regsvr32.exe”执行一下)。3.在开始位置引用命名空间:usingscanlibctl;4.在工具箱,选择项里添加控件“kodak图像扫描控件”,默认名称是aximgscan1。5.好了,以上弄好后就可以开始写代码

28、了:aximgscan1.showselectscanner();/选择扫描仪intll_rtn=aximgscan1.openscanner();/打开扫描仪if(ll_rtn=0)if(aximgscan1.scanneravailable()=true)/判断扫描仪是否可用aximgscan1.multipage=true;/是否多页aximgscan1.pagecount=aximgscan1.pagecount+1;stringpathgen=f:/aaa;stringpaths=pathgen+app.path+un;aximgscan1.image=paths;aximgscan

29、1.Filetype=Filetypeconstants.bmp_bitmap;/设置文件类型pressiontype=compressiontypeconstants.jpeg;aximgscan1.scanto=scantoconstants.displayanduseFiletemplate;aximgscan1.setpagetypecompressionopts(comppreferenceconstants.gooddisplay,imagetypeconstants.blackandwhite1bit,comptypeconstants.jpegcompression,compi

30、nfoconstants.g31dFaxRbo);aximgscan1.stopscanbox=false;aximgscan1.showsetupbeforescan=true;/是否在扫描前显示设置界面aximgscan1.show();ll_rtn=aximgscan1.startscan();/开始扫描if(ll_rtn=9254|ll_rtn=0)elsemessagebox.show(扫描仪没有正确连接或扫描控件已破坏,请检查!,系统提示);aximgscan1.closescanner();/关闭扫描仪elsemessagebox.show(扫描仪没有正确连接,请重新设置!,系统提示);elseif(ll_rtn=9219)message

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1