介绍 Introduction

一致性需求(Need for Consistency)

对于扫描仪,数字摄像仪,以及其他图像获取设备,用户渴望发现将图像合并到他们的文档以及其他工作的价值。然而,支持展示和操作这些图像数据将会让开发者付出高昂的代价。他们需要为了广泛种类的图像设备构造用户接口以及内建的设备控制程序。当他们的应用程序已经被准备好支持一个已有的设备的时候,他们又面临着令人沮丧的现实,那就是设备将会持续地以提供新功能和特性的方式进行升级更新。应用程序开发者发现他们不得不持续地校正他们的产品来保持当前的最新版本。

图像获取设备的开发者和软件应用程序的开发者逐渐意识到在图像设备和应用程序之间需要有一种统一的通讯标准。该标准将会对产品的开发团队以及他们的用户产生有利的价值。该标准允许设备提供商的产品能够被更多的应用程序所访问控制以及应用程序提供商能够从这些设备中获取数据而不关心这些设备是什么类型,或是由谁提供。TWAIN基于上述一致性以及简化需求而被开发出来。

TWAIN的组成元素(Elements of TWAIN)

TWAIN为了在软件应用和图像获取设备(数据源)之间通讯而定义了一套标准的软件协议以及API(application programming interface,应用程序接口)。

在TWAIN中,有3样关键元素:

  • 应用软件(Application software)

一个应用应该被修改以用于使用TWAIN。

  • 数据源管理器软件(Source Manager software)

该软件管理应用与数据源之间的交互。该模块的代码由TWAIN开发者工具包来提供并且对于任何基于TWAIN协议的应用和数据源的分发都是免费的。

  • 数据源软件(Source software)

该软件控制了图像获取设备。它由设备开发者在遵循TWAIN规范的情况下编写提供。传统的设备驱动在现在的情况下被包含在数据源软件中,并且无须分发给应用。

使用TWAIN规范的好处(Benefits of Using TWAIN)

对于应用开发者

  • 允许你为你的应用用户提供一个简单的方式来合并来自任何兼容的图像设备而不用切换应用程序。

  • 节约时间和金钱。如果你现在正为扫描仪等提供底层的设备驱动。因为遵循TWAIN规范的图像获取设备将会提供数据源软件模块,所以你不再需要编写,支持或是分发这些驱动。

  • 允许在你使用了高层封装的TWAIN应用程序接口后通过简单修改你的应用来访问来自任何遵循TWAIN规范的图像外围设备的图像数据。当然如果你愿意,你也可以提供你自己的用户界面来获取数据。

对于数据源开发者

  • 提高你的产品的可使用性和支持性。更多的应用程序将会因为设备集成TWAIN后的实现便携性以及通用性而成为图像的消费者。

  • 允许你为你的设备提供专有的用户界面。这将使你提供最新的特性给用户而不需要等待应用程序合并这些特性到他们的界面。

  • 通过减少你的开发实现来节约金钱耗费。你只需要创建一个简单的遵循TWAIN规范的数据源,而不是创建和支持各种各样版本的设备控制软件来集成到各种各样的应用中。

对于终端用户

  • 为用户获取使用图像到他们的文档中提供一个简单的方式。他们可以只凭借简单的几个步骤便可访问到图像因为他们他们不会进行各种软件的切换。

注意:TWAIN同时支持所有版本的Microsoft Windows以及Mac OS X。在TWAIN 2.x以及更高的版本中,也支持Linux和64位的操作系统。关于TWAIN支持16位操作系统和Apple Macintosh OS等旧版本操作系统的信息将不会在本TWAIN说明中提及。请参考说明1.9版本的TWAIN说明来获取关于更早版本操作系统使用TWAIN的信息。

TWAIN的创始(Creation of TWAIN)

TWAIN是在图像工业说明计划的需求之后由一些软件和硬件公司所组成的小团队所创建。这个工作团队的目标是提供一个开放的,多平台的解决方案来将图像输入设备和应用软件连接起来。最初的工作团队由五家代表公司所组成,它们分别是:Aldus,Caere,Kodak Alaris,Hewlett-Packard,以及Logitech。三家其他的公司,Adobe,Howtek以及Software Architects也参与了较多的构建。

TWAIN的设计始于1991年1月。关于TWAIN开发者工具包的代码检视从1991年4月开始,持续到了1992年1月。最初的工具包由TWAIN联盟来进行代码检视。这个联盟包含了代表200多家公司的大约300位个人开发者,他们也将继续影响以及指导TWAIN的未来走向。

当前版本的TWAIN由Adobe,Kodak Alaris, Inc.,Fujitsu Computer Products of Aerica,Hewlett-Packard Company,JFL Peripheral Solution Inc.,Ricoh Corporation, Xerox Corporation,以及Lizardtech Corporation等公司所组成的TWAIN工作团队成员编写。

在1998年的5月,微软与TWAIN工作组宣布了一项协议,该协议规定将在Microsoft Windows 98和Microsoft Windows NT 5.0中包含TWAIN数据源管理器。

在TWAIN的创建中,以下的结构目标将会始终坚持:

  • 易使用(Ease of Adoption)。允许应用提供者以合理的开发和测试量来构建遵循TWAIN规范的应用。TWAIN的基础特性仅仅需要对应用进行适量的修改就可以被实现。而想要使用更多完整的功能和设备控制,则能够在可控的范围内增加开发量。

  • 可扩展(Extensibility)。构建必须要包含足够的灵活性以拥抱横跨各种宿主平台的窗口环境(Mac OS X,Microsoft Windows,使用KDE或是Gnome的Linux等)以及促进来自数据源设备与目标应用之间的各种类型数据的交换。在当前的版本下,只能够支持图像数据,但是在未来还将建议支持包含文本,传真,矢量图等数据。

  • 可集成(Integration)。TWAIN实现中的关键元素“属于”操作系统。微软与TWAIN工作团队所宣布的协议表明集成到操作系统中正进行中。TWAIN必须要实现向后兼容(可扩展性)以及平滑地迁移到操作系统中。最大限度地减少使用平台特殊性机制的实现将会提高软件寿命以及可可复用性。

  • 简化应用与数据源之间的交互(Easy Application <-> Source Interconnect)。一种简单直观的数据源验证和选择机制将被应用。应用程序将通过一个简单的API来驱动这种机制。这个机制也会在应用程序和数据源之间建立数据和控制链接。它将会支持应用程序和数据源之间的能力、配置的通讯和协商。

  • 封装用户界面(Encapsulated Human Interface)。设备原生的用户界面在任何一个数据源软件中都要求有实现。应用程序能够以可选的方式来重写原生的用户界面来让数据源控制物理设备。

TWAIN-v2.4-说明文档翻译(1)介绍的更多相关文章

  1. ComponentSpace SAML v2.0 for .NET 使用介绍

    下载地址:http://samlsso.codeplex.com/ 以下描叙参考版本为其官网最新版本2.5.0.6.相对2.4版本,2.5有了很大改进,很多接口方法都变了.使用起来更方便,易懂. 广告 ...

  2. GrapeCity Documents for Excel 文档API组件 V2.2 新特性介绍

    GrapeCity Documents for Excel 文档API组件 V2.2 正式发布,本次新版本包含诸多重量级产品功能,如:将带有形状的电子表格导出为 PDF.控制分页和电子表格内容.将Ex ...

  3. Pywinauto在Windows Twain Driver自动化测试中的应用研究

    摘  要: 以Python为基础,结合对Twain Driver测试工具的具体需求,将Pywinauto引入到Twain Driver的自动化测试中.介绍了Pywinauto的基本概念,通过测试用例说 ...

  4. Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27

    Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27 1. Jna简单介绍1 2. Jna范例halo owrld1 3. Jna概念2 3.1. (1)需 ...

  5. kong插件官方文档翻译

    kong插件官方文档翻译 目录 介绍 文件结构 编写自定义逻辑 存储配置 访问数据存储 自定义实体 缓存自定义实体 扩展Admin API 编写测试 (卸载)安装你的插件 插件开发 - 介绍 什么是插 ...

  6. 最牛逼android上的图表库MpChart(三) 条形图

    最牛逼android上的图表库MpChart三 条形图 BarChart条形图介绍 BarChart条形图实例 BarChart效果 最牛逼android上的图表库MpChart(三) 条形图 最近工 ...

  7. 【转载】正则表达式学习 & ASCII码表

    文章原地址: http://www.jb51.net/tools/zhengze.html <正则表达式30分钟入门教程> 其中有几个地方可以有笔记: \s 匹配任意的空白符 \b 匹配单 ...

  8. 正则表达式30分钟入门教程<转载>

    来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了 ...

  9. 正则表达式(来源http://deerchao.net/tutorials/regex/regex.htm)

    目录 跳过目录 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处 ...

  10. 更新k8s镜像版本的三种方式

    一.知识准备 更新镜像版本是在k8s日常使用中非常常见的一种操作,本文主要介绍更新介绍的三种方法 二.环境准备 组件 版本 OS Ubuntu 18.04.1 LTS docker 18.06.0-c ...

随机推荐

  1. linux使用xampp安装MediaWiki环境

    1.下载并安装xampp 下载xampp 在下载页面下载. 放置到相应目录 将xampp-linux-x64-5.6.3-0-installer.run文件复制到部署机器的/root目录下 安装 [r ...

  2. springboot全局异常封装案例

    @ControllerAdvice三个场景:>https://www.cnblogs.com/lenve/p/10748453.html 全局异常处理 全局数据绑定 全局数据预处理 首先定义一个 ...

  3. MySQL-SQL基础-DCL

    mysql> grant select,insert on sakila.* to 'zl'@'localhost' identified by '123'; Query OK, 0 rows ...

  4. vue element-ui .el-dialog 限制高度

    <style scoped> /deep/ .el-dialog {   height: 78vh;   overflow: auto; }   </style>

  5. K8s 系列(三) - 如何配置 etcd https 证书?

    在 K8s 中,kube-apiserver 使用 etcd 对 REST object 资源进行持久化存储,本文介绍如何配置生成自签 https 证书,搭建 etcd 集群给 apiserver 使 ...

  6. 只需3步,快来用AI预测你爱的球队下一场能赢吗?

    摘要:作为球迷,我们有时候希望自己拥有预测未来的能力. 本文分享自华为云社区<用 AI 预测球赛结果只需三步,看看你爱的球队下一场能赢吗?>,作者:HWCloudAI. 还记得今年夏天的欧 ...

  7. Identity基于角色的访问授权

    详情访问官方文档 例如,以下代码将访问权限限制为属于角色成员的用户的任何操作 AdministrationController Administrator : [Authorize(Roles = & ...

  8. 排查dubbo接口重复注销问题,我发现了一个巧妙的设计

    背景 我在公司内负责自研的dubbo注册中心相关工作,群里经常接到业务方反馈dubbo接口注销报错.经排查,确定是同一个接口调用了两次注销接口导致,由于我们的注册中心注销接口不能重复调用,调用第二次会 ...

  9. Spring Boot 入门系列(二十七)使用Spring Data JPA 自定义查询如此简单,完全不需要写SQL!

    前面讲了Spring Boot 整合Spring Boot JPA,实现JPA 的增.删.改.查的功能.JPA使用非常简单,只需继承JpaRepository ,无需任何数据访问层和sql语句即可实现 ...

  10. linux 下 I/O 多路复用初探

    本文内容整理自B站up主 free-coder 发布的视频:[并发]IO多路复用select/poll/epoll介绍 引入 一般来讲,服务器在处理IO请求(一般指的是socket编程)时,需要对so ...