作为LEAD Technologies 25周年纪念的一部分,我们正在搞一个“25天收集25个项目来展示LEAD功能强度和易用性”的活动。今天要展示的项目来自于内森的分享。
目录词语搜索截图
它是做什么的
使用LEADTOOLS第19版,该应用程序既可以搜索文本中的光栅图像,又可以搜索其中的文档文件,并返回与之相匹配的文件。
所使用的功能
· OCR
开发进程日志
大家好,我是内森。我要编写这样一个应用程序,该程序可以搜索一个文件目录中的特定词语,不管他们是光栅图像格式还是文档文件格式。有了LEADTOOLS的帮助,我就应该能找到这个特定的词语。
首先,我需要构建一个UI;然后,我要使该词语搜索在使用“文档”类的情况下只对文档格式的文件起作用。
这个过程根本不会耗时太久,也许只需要30分钟。现在我需要添加的是OCR功能,这样,我们就可以同样在光栅图像中搜索该词语。由于OCR操作起来比较慢,我需要添加一个复选框,来允许用户能够选择性地使用OCR。
以上步骤花费了我大约一个小时左右的时间,另外,我不得不四处移动一些东西。一切都在我的UI线程可控范围之内,虽然它可能会引起随之产生的一些问题。我要为所有要完成的工作创建一个后台线程,并为该UI创建一些状态,以便对用户在某些情况下可以做些什么做出限制。
由于我对.NET环境下的多线程相对而言还不是十分了解,因此,这个过程花费了我大约两个小时的时间。现在,UI线程与所有正在进行的工作是相对独立的,用户可以暂停或取消手头的操作。
由于一次性地将几个大的目录生成一个文件可能需要相当多的时间,所以我更希望能提高速度。我将使用Parallel.ForEach
循环来一次性处理多个文档,不仅如此,还包括对每个文档中的多个页面进行处理。
花了大约2个小时,我终于成功地降低了发生那些随之产生的问题的风险。幸运的是,LEADTOOLS 的OCR和该“文档”类是线程安全的,这样,不需要任何额外的编码,就可以允许一次性完成对多个文档、多个页面的处理。
现在,我们可以在一个满是文件的目录中搜索一个特定词语,并在搜索到之后直接打开该文件,而无需中断程序的处理过程。这操作起来是非常快的,因为我们可以同时搜索若干文档文件,以及这些文档中的多个页面。
我会再做一些代码清理工作。然后,这个程序就完成了。
约20分钟的代码清理之后后,程序终于完工啦!在不到6小时的时间内,我能够创建这样一个完整的多线程应用程序,这实在是相当令人震惊,更何况该程序可以允许我在一个满是光栅图像或文档的目录中搜索文本。不过,如果没有LEADTOOLS的帮助,我也是没有办法做到这一点的。
该演示程序的未来还可以做出这样的改进,即将图像加载到查看器,并将搜索词被发现的区域(S)加为高亮。这样,程序就更加完美了!
下载该项目
该示例项目的源代码您可以点击这里进行下载。
25 Directory Word Search for Images and Documents.zip (22.70 kb)
要运行该项目,请将其解压缩到该目录下:C:\LEADTOOLS 19\Examples\DotNet\CS directory。
支持
关于其他产品的更多信息,请访问我们的官方网站,
欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。
同时欢迎您使用评估版期间的免费技术支持。
Download the Project
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。