几种调用扫描仪的方案

http://rfbao.blog2.cnool.net/Article/2010/02/21/401794.html

几种调用扫描仪的方案

近期由于项目需求,简单研究了一下客户端调用扫描仪的问题,总结了一下,大概有以

下几种方式:
(1)TWAIN
TWAINTWAIN协议,全称Toolkit Without An Interesting Name,无注名工具包协议,

是应用软件从计算机外设获取静态图像的国际标准。
TWAIN是一项重要的接口标准,为软件开发商和硬件设备生产厂商之间提供了一个统一的

规范,以有效地避免系统及设备之间的不兼容问题。TWAIN协议为操作系统提供了软件支

持,使得符合TWAIN协议的软件通过调用TWAIN协议接口就能从兼容TWAIN协议的外设上获

取静态图像,而不必考虑外设的功能差别。
TWAIN共包括4个二进制文件。如果要使用该接口,就必须要保证他们被成功地安装在本

地计算机上。如下:
TWAIN_32.DLL
TWAIN.DLL
TWUNKER_32.EXE
TWUNKER_16.EXE
在Windows 操作系统中,Microsoft已经把这些文件作为系统文件随同操作系统一起发布

了。可以在Windows安装目录中查找到这些文件。通过TWAIN提供的头文件(twain.h),

可以实现扫描功能。

(2)Kodakimg
映像KODAKIMG.EXE是Windows 95/ 98/NT 和 Windows 2000中用于图像扫描、浏

览和编辑的附件程序(在WINDOWS安装过程中是可选的),分为自由版和专业版(需另外

购买)。在Windows的安装过程中,4个OCX Kodak控件(Kodak图像编辑控件、Kodak图

像管理控件、Kodak图像扫描控件及Kodak图像缩略图控件)随着自由版映像程序的安装

也被一同安装。这四个控件被允许用于任何的Windows开发工具中来开发与图像有关的软

件产品。当然,自由版的映像程序限制并隐藏了这四个控件的一些属性和方法;比如,

编辑控件的DeSpeckle方法仅限于结合专业版的映像程序使用。另外值得一提的是,专业

版的映像程序通过引入新的图像OCR控件提供了扩展的图像处理能力。还有,Windows映

像程序并没有随着Windows ME及Windows XP一同分发。在新的系统中,微软想以“图像

与电传浏览程序”和“扫描仪与相机向导”取而代之。要在新系统上使用Windows映像程

序,必须另行购买Windows映像程序专业版本;但如果从Windows 2000系统升级到XP,依

然有映像程序及四个控件可用。

(3)Dynamic TWAIN ActiveX
Dynamic TWAIN ActiveX 控件可以使得你能从任何TWAIN 兼容的设备获取图象。它有着

精心设计的界面,以及内建的向导模式, Dynamic TWAIN 使用起来很简单。你可以在若

干代码间做典型的 TWAIN 工作。同时, DynamicTWAIN 功能很强大。它和 TWAIN V1.9

规范兼容,内建了 TIFF 和 JPEG 的编解码器。它还支持所有的三种图象格式的转换以

及其他的特性。通过 Dynamic TWAIN ActiveX 控件,如果有TWAIN 驱动器的话,你可

以操作扫描仪、数字相机或捕捉卡。更高端的获取功能使得能更容易使用它,就算条件

再苛刻,低端的功能也能让我们操作更弹性更易用。

(4)WIA
 Windows 图像采集 (WIA) 是最新 imaging 技术,在Microsoft Windows

Millennium Edition中引入, 包含在更高版本的 MicrosoftWindows 操作系统中(例如

WindowsXP,注意Windows2000不支持WIA)。 WIA 提供广泛的支持以启用 imaging 设备

, 如扫描仪和数码相机, 以与图像应用程序 (例如, MicrosoftPicture2000和 Adobe

Photoshop)对接。
  WIA之前的成像设备行业标准是TWAIN标准。
  使用WIA,制造商只需要写 WIA microdriver 以允许设备使用。 这类似于打印制造

商提供 minidriver, 而其他WIA组件由操作系统实现。
  使用WIA, 独立硬件供应商 (IHV) 可集中编写代码以提高设备功能。
WIA和TWAIN的关系是,WIA是微软操作系统的影像获取体系结构,属于Windows操作系统

驱动程序类;而TWAIN是开放协议,用来解决应用软件对不同影像外设的可移植性调用。

应当说,WIA是驱动层上的东西,它为应用程序提供SDK接口;而TWAIN协议在驱动程序和

应用程序间提供一个公用接口。TWAIN的层次高于WIA。

第一种方式需要有点c++基础,本人c++实在惨不忍睹,╮(╯▽╰)╭;第二种由于柯达

控件只存在月Windows 95/ 98/NT 和 Windows 2000中,不是很通用,当然你也可以从

Windows 2000中拷贝出来,打包发送到客户端然后注册使用;第三种方式应该算是最简

单的,但是它并不是一个开源项目;第四种WIA 是 Windows ME 及其以后的操作系统中

提供的,Windows 98/2000 均不支持 WIA(所以说也不能很好的覆盖所有用户),因此

需要在较新版本的 MSDN Library 中才有 WIA 文档。WIA 1.0 在 MSDN 的文档地址是:

http://msdn.microsoft.com/library/default.asp?url=/library/en-

us/wia/wia/overviews/startpage.asp另外,因为 Visual C++ 6.0 中没有 WIA 库,所

以需要使用 Visual Studio.NET 2002/2003 编译 WIA 程序。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络基础架构及数据中心规划方案 2016年11月 目录 一.网络建设需求 2 1.1 目标架构: 2 1.2设计目标: 2 二. 规划方案 4 2.1 方案拓扑 4 2.2 架构说明 5 2.3 为什么选用虚拟化技术(整个方案的重点) 6 2.4 方案结构……………………………………………………………………………………7 2.4.1 基础架构服务层 7 2.4.2 应用程序服务层 9 2.4.3 虚拟应用程序层 14 2.4.4 数据备份 15 2.4.5 具体方案陈述 20 2.5 方案带来的好处 21 2.5.1 大大降低 21 2.5.2 提高运营效率 23 2.5.3 提高服务水平 24 三. 项目预算 24 总述 为推进公司信息化建设,以信息化推动公司业务工作改革及发展,需要在集团总部 建设新一代的绿色高效能数据中心网络。 一.网络建设需求 1.1 目标架构: 传统组网观念是根据功能需求的变化实现对应的硬件功能盒子堆砌而构建企业网络 的,这是一种较低效率的资源调用方式,而如果能够将整个网络的构建看成是由封装完好 、相互耦合松散、但能够被标准化和统一调度的"服务"组成,那么业务层面的变更、物 理资源的复用都将是轻而易举的事情。最终形成底层资源对于上层应用就象由服务构成 的"资源池",需要什么服务就自动的会由网络调用相关物理资源来实现。 1.2设计目标: 扩展性: 架构设计能应对集团未来几年的发展以及满足整合分公司资源的需要; 简化管理 使上层业务的变更作用于物理设施的复杂度降低,能够最低限度的减少了物理资源的 直接调度,使维护管理的难度和成本大大降低。 高效复用 得物理资源可以按需调度,物理资源得以最大限度的重用,减少建设成本,提高使用 效率。即能够实现总硬件资源占用降低了,而每个业务得到的服务反而更有充分的资源保 证了。 网络安全: 内部安全性、外部安全性、数据交换快速、可靠; 网络访问的稳定性: 选择目前主流产品,通过整合各司其职,减轻单一产品负载; 可视化: 直观的发现目前公司所存在的一些风险及带宽资源利用情况,准确定位问题。 绿色数据中心 当前的能源日趋紧张,最大限度的利用能源、降低功耗,以最有效方式实现高性能、高稳 定性的服务。 二. 规划方案 2.1 方案拓扑 2.2 架构说明 网络出口部署一台高端防火墙( 5600),根据公司未来业务需要在考虑是否做热备; 通过防火墙可以侦测并防范来自针对公司发起的攻击行为。能够对公司内部员工访问外 网的流量做病毒扫描和间谍软件的扫描,清除病毒源和阻止病毒扩散,保护内网的员工电 脑和服务器。 防火墙及交换机之间桥接一台深信服行为管理(1400); 可以实时定位带宽消耗,提升带宽效率、工作效率,防范法律风险,防止公司信息泄露。 核心层使用思科交换机,并做双机热备; 办公区及服务器虚拟化区域划分在不同。 整个办公区域覆盖企业级的无线网络(信锐)。 未来分公司需要访问集团应用既可以通过专线同时也可以使用(点对点)做备份链路, 移动办公人员可通过拨号访问; 通过建设数据中心服务器虚拟化。 2.3 为什么选用虚拟化技术(整个方案重点) 如果按传统方式逐一购买新的服务器,并按应用独立增加容灾和备份方案,不仅会增 加高昂采购成本和运作成本,还会带来更多供电和冷却的开支。购置新的服务器是一项 漫长的过程,并且对耗费大量人力,往往需要数日甚至数月的考虑以及操作,这使得 部门更加难以应对业务快速成长和不断变动的需求,并消耗大量宝贵的资源和时间。   现今企业的服务器的性能提升很大,所购买的服务器中大部分使用率都不高,这意味着 客户在架构中的投入未能被最有效地使用。通常工作负载一般只有5- 15%,资源还没有得到充分的利用,这导致了大量的硬件、空间以及电力的浪费。根据公 司目前服务器运行的不同业务系统和服务器性能综合考虑、未来规划,所以采用目前主 流的服务器虚拟化技术,并购置2台较高档次的 R730服务器作为虚拟平台服务器,每台服务器上都安装配置虚拟架构套件软件,用于在 物理服务器实体上,利用服务器强大的处理能力,生成多个虚拟服务器,而每一个虚拟服 务器,从功能、性能和操作方式上,等同于传统的单台物理服务器。在每个虚拟服务器上 ,就可以安装配置操作系统,进而再安装应用软件,在服务器层面实现业务系统的整合 。除了节约服务器硬件资源外,本方案建议的规避硬件单点故障高可用性容灾功能,规避 软件单点故障的容灾备份功能,都必须依赖服务器虚拟化平台进行。通过虚拟化实现有着 无可比拟的成本优势,为企业节约了资金。 选用的 是用于构建云计算基础架构的业界领先的虚拟化平台。它使用户能够自信地运行关键业 务应用程序,更快速地响应业务需求,并且能够帮助用户进行服务器整合、提高服务器 的可靠性和高可用性,以及实现商业
电脑变慢de完全解决方案   一、软件篇   1、设定虚拟内存   硬盘中有一个很宠大的数据交换文件,它是系统预留给虚拟内存作暂存的地方,很多应用程序都经常会使用到,所以系统需要经常对主存储器作大量的数据存取,因此存取这个档案的速度便构成影响计算机快慢的非常重要因素!一般Windows预设的是由系统自行管理虚拟内存,它会因应不同程序所需而自动调校交换档的大小,但这样的变大缩小会给系统带来额外的负担,令系统运作变慢!有见及此,用户最好自定虚拟内存的最小值和最大值,避免经常变换大小。要设定虚拟内存,在“我的电脑”上按右键选择“属性”,在“高级”选项里的“效能”的对话框中,对“虚拟内存”进行设置。   3、检查应用软件或者驱动程序   有些程序在电脑系统启动会时使系统变慢。如果要是否是这方面的原因,我们可以从“安全模式”启动。因为这是原始启动,“安全模式”运行的要比正常运行时要慢。但是,如果你用“安全模式”启动发现电脑启动速度比正常启动时速度要快,那可能某个程序是导致系统启动速度变慢的原因。   4、桌面图标太多会惹祸   桌面上有太多图标也会降低系统启动速度。Windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们,图标越多,所花费的时间当然就越多。同时有些杀毒软件提供了系统启动扫描功能,这将会耗费非常多的时间,其实如果你已经打开了杀毒软件的实时监视功能,那么启动时扫描系统就显得有些多余,还是将这项功能禁止吧!建议大家将不常用的桌面图标放到一个专门的文件夹中或者干脆删除!   5、ADSL导致的系统启动变慢   默认情况下WindowsXP在启动时会对网卡等网络设备进行自检,如果发现网卡的IP地址等未配置好就会对其进行设置,这可能是导致系统启动变慢的真正原因。这时我们可以打开“本地连接”属性菜单,双击“常规”项中的“Internet协议”打开“TCP/IP属性”菜单。将网卡的IP地址配置为一个在公网(默认的网关是192.168.1.1)中尚未使用的数值如192.168.1.X,X取介于2~255之间的值,子网掩码设置为255.255.255.0,默认网关和DNS可取默认设置。   6、字体对速度的影响   虽然微软声称Windows操作系统可以安装1000~1500种字体,但实际上当你安装的字体超过500种时,就会出现问题,比如:字体从应用程序的字体列表中消失以及Windows的启动速度大幅下降。在此建议最好将用不到或者不常用的字体删除,为避免删除后发生意外,可先进行必要的备份。   7、删除随机启动程序   何谓随机启动程序呢?随机启动程序就是在开机时加载的程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、popkiller之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。   8、取消背景和关闭activedesktop   不知大家有否留意到,我们平时一直摆放在桌面上漂亮的背景,其实是很浪费计算机资源的!不但如此,而且还拖慢计算机在执行应用程序时的速度!本想美化桌面,但又拖慢计算机的速度,这样我们就需要不在使用背景了,方法是:在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,选“无”,在“外观”的对话框中,在桌面预设的青绿色,改为黑色......至于关闭activedesktop,即是叫你关闭从桌面上的web画面,例如在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,有一幅背景,名为WindowsXX,那副就是web画面了!所以如何系统配置不高就不要开启。   10、把Windows变得更苗条   与DOS系统相比,Windows过于庞大,而且随着你每天的操作,安装新软件、加载运行库、添加新游戏等等使得它变得更加庞大,而更为重要的是变大的不仅仅是它的目录,还有它的注册表和运行库。因为即使删除了某个程序,可是它使用的DLL文件仍然会存在,因而随着使用日久,Windows的启动和退出时需要加载的DLL动态链接库文件越来越大,自然系统运行速度也就越来越慢了。这时我们就需要使用一些彻底删除DLL的程序,它们可以使Windows恢复苗条的身材。建议极品玩家们最好每隔两个月就重新安装一遍Windows,这很有效。   11、更改系统开
游戏功能: 游戏界面由4×4的16个方格组成,每个方格中可以存放一个数字。玩家通过操纵Basys3开发板的上下左右四个方向键和中央的reset键,控制方格中的数字移动。界面由VGA和Pmod接口oled两种方式显示。游戏成功时显示笑脸,失败时显示骷髅。 游戏过程中,玩家每按动一次方向键,所有数字按照这个方向移动一次,该方向上相邻相同的数字合并为原来的2倍,并在反方向随机生成一个新的数字。玩家目标是在游戏中拼出2048或更高的数字,即为游戏成功。 DIY动手指南: Step1:材料准备 硬件: Basys3开发板 VGA连接线以及VGA显示器 (可选)sh1106驱动的oled显示屏一块 软件: Vivado 2016.2 Step2:系统框架 系统主要由以下几个模块构成,游戏主状态机、游戏数据寄存器{S16}、移动模块move、随机产生模块gen、随机数生成器ran、VGA驱动模块和oled驱动模块。 Step3:程序设计 接下来分模块进行分析。 1、按键去抖 对每个按键设计了一个32位长的FIFO,按键值从低位进入直至高位溢出。每过10ms,FIFO被完全刷新一次,只有当32位为FFFFFFFFh时认为输入为1,00000000h时认为输入为0。 2、游戏数据寄存器 用4×4=16个4bit寄存器,存放16个格子中的数据,记为{S16},以【log2对数】形式存放。即如果格子中是512,则存放9;如果格子中是128,则存放7。特例是0用0来存放。这种存放的特点是,可以节约寄存器数量,而且原本的加法128+128=256可以用加1来表示:7+1=8。寄存器位置定义如下: 3、游戏主状态机 游戏主状态机中,主要操纵数据寄存器{S16}的数值,通过对这个寄存器中数值的改变来实现游戏的进行。 状态机分为4个状态:检测按键+移动,产生随机数,游戏状态检测,游戏失败死循环。 其中游戏状态检测时,检查当前游戏是否已经结束或成功,如果成功,游戏不中断,玩家可以继续下去,如果已经结束,则跳入游戏失败的死循环中,结束游戏。 4、移动逻辑组合电路 本游戏有4种移动方式,即上下左右,每次移动4条线,但本质都是相同的,只需要一个模块即可完成。如下图所示 move(i3,i2,i1,i0,o3,o2,o1,o0) 我们默认向右移动。(为什么呢?因为当我们调用这个模块时,可以以各种方向调用:如果向右移动,则调用move(15,14,13,12)向右,如果向左移动,则调用move(12,13,14,15)向右即可,还可以调用move{15,11,7,3}向下,调用move{1,5,9,13}向上等等。) 那么向右移动时,用f3~f0判断这四位是否为空,通过对f3~f0的16种情况的mux来决定输出的值,如果有相同则合并后输出。(其实这个模块就是一个大mux) 例如,下图所示,左图右移后,变为右图。 再例如:2,2,4,8右移后变为0,4,4,8,再右移变为0,0,8,8再右移变为0,0,0,16 5、随机数生成器和随机产生模块 随机数产生器为随机产生模块gen服务。随机数生成器产生3组随机数,分别为8bit,12bit和16bit。分别对应2空格、3空格和4空格的情况。例如,如果右移后的图片如下图所示,那么黄色格子里的2就是在最左列3空格情况下随机产生的一个位置。 我们还是默认向右移动,那么最左边的四个格子(15,11,7,3)即可交给gen,在空白出产生一个随机位置的“2”。 这里需要注意的是,2048游戏中规定必须是“有效移动”后才产生一个数字,以杜绝有投机的玩家一直按同一个方向键可以作弊的情况。这一逻辑只需要对上一步中move前后做一下对比即可。 6、VGA显示模块 640×480分辨率,25MHz的时钟信号。 其中扫描时,将VGA坐标的后两位[1:0]舍去,即可将640×480像素变为160×120的色块。 (注:源码中的VGA画图一段和oled画图一段看上去很复杂,其实是画点的方式比较奇怪,两种画法都是先将132x64的点阵水平划分为8条,每条8行,再以每列为1个byte的方式画出来。。。那么为什么要这么复杂呢?因为oled的sh1106驱动就是这么要求的,我先做了oled,后面vga就直接引用了~) Step4:演示见视频~

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值