文章目录
创建 TWAIN Direct 的原因
在当今的环境中,当开发人员决定向其应用程序添加扫描功能时,他们会遇到以下问题:
- 图像捕获 API 通常仅限于 C 和 C++ 编程语言,或者最受 C 和 C++ 编程语言支持。 与其他流行语言或网络浏览器连接时需要第三方工具包。
- 开发人员必须决定使用哪个图像捕获 API(例如 TWAIN、WIA、ISIS、SANE、ICA 等)。 此决定受到应用程序运行的操作系统以及扫描仪支持的 API 的影响。 这使得开发人员更难切换到不同的扫描仪产品或支持新产品。
- 图像捕获 API 很复杂,反映了扫描仪本身的复杂性,扫描仪支持大量可能的设置(例如,压缩、亮度、对比度、感兴趣区域、纠偏、条形码检测等)。 TWAIN 规范目前描述了 150 多种功能。 除了标准设置之外,扫描仪供应商还包括自己的自定义功能。 这种复杂性促使应用程序开发人员寻求“最小公分母”的解决方案来解决他们的问题,即使扫描仪能够提供更好的用户体验。
- 应用程序开发的大部分时间不是仅仅专注于解决最终用户的问题,而是用于防御性编程,处理扫描仪的可变功能集及其驱动程序的可靠性。 开发强大的扫描应用程序需要数周或数月的时间。
- 扫描仪供应商为其设备提供驱动程序(例如 TWAIN、WIA、ISIS、SANE、ICA 等)。 最终用户和 IT 人员必须在其系统上安装这些驱动程序并根据需要进行升级。 在这个遗留模型中,应用程序与驱动程序通信,驱动程序与扫描仪通信。 驱动程序和扫描仪之间的通信是专有的,这使得开发人员在没有扫描仪供应商帮助的情况下更难诊断问题。
- 当前的图像捕捉 API 是针对外围通信协议(例如 IEEE 1284、SCSI、USB 等)开发的。 网络扫描仪的应用程序控制尚未以整个行业针对所有操作系统平台采用的方式标准化。