/TWAIN-Specification-CHN

《TWAIN-2.3 Spec》的中文翻译文档,是基于TWAIN协议进行应用程序开发的程序员必备手册。

《TWAIN中文开发文档》

TWAIN

TWAIN(全写:Technology Without An Interesting Name)是一个软件和数码相机、扫描仪等图像输入设备之间的通讯标准。
TWAIN工作组于1990年组成,包含柯达、惠普、罗技等图像设备厂商和Aldus、Caerre等图像软件厂商。
这个组织的目标是创建一个满足如下条件的标准:

  • 多平台支持
  • 兼容多种设备
  • 广泛的软硬件支持
  • 可扩展性
  • 针对最终用户和软件开发人员的易用性
  • 多种图像格式支持

从硬件到软件,TWAIN包含四层:硬件、源、源管理器和软件。硬件厂家的TWAIN支持通常体现为支持TWAIN接口的驱动程序。
TWAIN的硬件层接口被称为源,源管理器负责选择和管理来自不同硬件厂家的源。在微软的Windows上,源管理器是以DLL方式实现。TWAIN软件不直接调用硬件厂家的TWAIN接口,而是通过源管理器。
用户在TWAIN软件中选择获取图像之后,TWAIN软件和硬件通过一系列交涉来决定如何传输数据。软件描述它需要的图像,而硬件描述它能够提供的图像。
如果软硬件在图像格式上达成一致,那么控制被传递到源。源现在可以设置扫描选项,以及开始扫描。

说明

随着各种扫描仪、数码相机和其他图像获取设备的出现和普及使用,相当多客户的业务系统将扫描仪等引入作为系统外设。
然而市场上扫描仪、数据相机类型众多,客户应用程序如何来使用这些扫描仪和数据相机。早期支持显示和光栅数据处理的应用程序针对每种图象获取设备都需要单独设计用户界面、设备驱动程序,在这种情况下,当设备不断升级时,应用程序也要进行相应的修改,使用维护难度增大,维护成本升高。
在这种前提下,扫描仪及数据相机等图像获取设备的开发商和应用软件开发商都意识到需要在设备和应用之间定义一个标准的通信协议,使设备能被更多的应用程序支持,同时使应用程序不需要修改就能支持更多的设备或设备的更新。TWAIN就是在这种追求一致性和简单性的背景下产生的。
本项目完整翻译了TWAIN重要组成部分,并详细阐述了TWAIN的协议机制:

  • TWAIN协议原理
  • 应用程序层
  • 源实现层
  • Triplets部分(个人认为非常优秀的接口设计**)
  • 数据类型及数据结构
  • Capability参数说明(与应用程序开发关系最为密切的部分)
  • 返回码和错误码

部分翻译截图

TWAIN组成

参数说明