TWAIN作为一种协议,是个抽象的存在。实际应用中,用户需要通过用户界面来使用相关的应用程序和设备。在最基础的层面上,上一篇文章1中提到的源管理程序DSM和源Source都有默认的UI。
DSM的UI
DSM管理着所有的Sources,如果一个特定的Source已经处于活跃状态,即它已经处于和一个应用程序的交互中,则DSM只需要做好这个交互的中介和翻译即可。而在那之前,DSM还有一个任务就是协助建立这个交互。具体的说,就是在应用程序的请求下,返回所有可用的源Sources,并按程序的需求选中其中一个源。这一过程可以是完全通过编程实现的,但是DSM一般也会通过其内置的UI来简化这一过程。该UI如下图所示提供源的显示和选择功能。
Source的UI
一旦一个Source被选定,应用程序便和对应的扫描仪建立了一个联系。这一联系唯一的目的就是将扫描仪中加载的文档扫描(栅格化)并传输到应用程序中。当然了,这个过程说说是极简单的,但是具体的操作上却是很复杂的。比如说,扫描时想要以什么样的颜色模式,多高的清晰度、对比度,亮度来扫描多大的图片;再如,扫描完传输前是否要求扫描仪做额外信息的读取,丢弃空白页,自动旋转扫描反的图、将无用的边缘割