我的任务是将图像采集集成到.NET应用程序中,我一直在寻找用于执行此功能的API。我遇到过几个“标准”API,有些已经存在了很长时间,有些时间不长。我查看了对ISIS,TWAIN,WIA和SANE的引用(据说主要是* nix)。它们似乎都是除了SANE之外的Win32库,我想知道当前建议与图像采集设备(扫描仪)交谈的内容是什么?
如果你觉得它更好,请随意推荐别的东西。 我正在寻找开源选项。
编辑: 我把开源,当我实际意味着是免费的。使用WIA或TWAIN是好的,因为它们是免费的,即使它们是专有接口。
答案 0 :(得分:4)
如果您的应用程序使用的是高端扫描仪,并且您需要编写一个可以最大化扫描仪吞吐量的应用程序并利用这些扫描仪的所有高级功能,那么您需要查看基于ISIS的API。我个人已经使用Captiva的/ EMC PixTools SDK非常成功地为大容量扫描室构建应用程序。该工具包使用各种图像处理过滤器和软件可以非常轻松地即时清理扫描图像。我还能够轻松集成条形码和补丁码识别。该工具包价格昂贵 - 四年前约为6,000美元。
但我怀疑你的应用程序不需要高端解决方案。在这种情况下,我认为你应该看看TWAIN。我自己从未尝试过,但我知道TWAIN很难配合使用。前段时间我在CodeProject上发现了一篇文章,其中作者为TWAIN提供了一个.NET包装器:
我玩了一下它似乎工作。在这里,我找到了一个帖子,Luke Quinane根据同一篇文章向读者介绍了他的Google Code项目。这是链接:
答案 1 :(得分:3)
如果您限制选择开源,那么您将自己局限于SANE。我怀疑在设备支持和兼容性方面还有其他任何与SANE接近的开源库。那就是必须要提到的是,与TWAIN和WIA等专有API相比,SANE的设备支持仍然很差......
如果开源不是必须 - 那么选择取决于操作系统。 WIA将是Windows XP及更新版本的最佳解决方案,如果您需要支持Windows 2000或9x,TWAIN可能会更好(我认为TWAIN也应该是跨平台的,即使我没有任何证据证明这一点现在)。与WIA相比,尽管(恕我直言)TWAIN API已经过时了,WIA对支持批量扫描(TWAIN留给设备制造商支持与否)这些内容提出了更严格的要求。
答案 2 :(得分:1)
我建议你在大多数情况下使用TWAIN驱动程序,因为它提供了与扫描仪的最大兼容性,并且可以根据扫描仪型号自由定制扫描。如果您正在构建一个简单的扫描应用程序,WIA也可能是合适的。对于ISIS,除非您有特定要求,否则最好先检查其他选项。如果没有Windows系统,SANE可以跨网络扫描提供最佳支持。
答案 3 :(得分:0)
如果你可以和Sane的设备支持一起生活,那就一定要去,因为它更安全,更自由(开放),更灵活。 Oðers总是会施加任意限制。