最近研究虚拟Scanner用到了这篇文章,感觉很有效,尤其是"

TWAIN最常用的Triplets操作"这一部分,描述了APP调用DS的整个流程,以及每一步调用DS_Entry()传输的参数值和含义。twain算是一个开源的协议。文章转载到这里。




前言

随着档案馆、图书馆信息化工作的推进,对于历史档案、库存图书的电子化工作也要求越来越多。信息化工作中最重要的一步是要把传统纸质的数据实现电子化。如何电子化,当然就是通过图像输入设备(扫描仪、数码照相机)来获得图像数据。该文主要介绍如何利用TWAIN接口来实现与扫描仪、数码照相机等设备的通讯。

TWAIN介绍

TWAIN工作组是一个非盈利的国际组织。它旨在提供一个统一的标准接口,通过该接口就可以实现应用程序与图像输入设备间的通讯。其实该标准目前已经成为了应用程序与图像输入设备间通讯的事实标准。

TWAIN的文件组成

TWAIN共包括4个二进制文件。如果要使用该接口,就必须要保证他们被成功地安装在本地计算机上。

TWAIN_32.DLL

32位应用程序的支持文件,32位程序使用TWAIN通讯必须使用该文件。

TWAIN.DLL

16位应用程序的支持文件,16位程序使用TWAIN通讯必须使用该文件。

TWUNKER_32.EXE

实现32位应用程序与32位数据源进行通讯,它运行时不可见。

TWUNKER_16.EXE

实现32位应用程序与16位数据源进行通讯,它运行时不可见。

注意:在Windows NT 环境下16位数据源不能够正常工作。

Windows 操作系统中(Windows 9x / 2000 / XP ),Microsoft已经把这些文件作为系统文件随同操作系统一起发布了。你可以在Windows安装目录中查找到这些文件。如果我们要编程来实现对TWAIN的访问,还需要最重要的头文件。你通过访问该http://www.twain.org/devfiles/twain.h地址来获得TWAIN提供的头文件。

好了,现在就让我们来了解一下TWAIN的结构吧。

TWAIN的结构

TWAIN依靠三个组件协同完成与图像设备的通讯和数据传输工作,这三个组件就是ApplicationSourceManagerSource

Application

就是你要编写的应用程序。

Source Manager

是由TWAIN提供的一个Source的管理器,它不仅可以收集本地系统已经安装了的图像设备,还可以根据需要去加载设备。同时,它最重要的功能是担任Application Source通讯的桥梁。(其实,它就是我们前面提到的组成文件中的dll文件。)

Source

在这里可以看作是图像设备。事实上它是由设备厂家提供的一个dll文件。这个dll文件是支持twain接口的。(该文不讨论关于twainSource中的应用。)

它们的层次结构图如下: