pdf417 Javascript读取/解码



我的任务是为基于web的应用程序添加pdf417(驾驶执照)解码/读取。

输入:驾驶执照的图像。(400-600 dpi)

处理:检测/分析pdf417数据。

输出:分析pdf417数据。

限制:它是一个基于网络的应用程序,通过IE、Chrome、Safari运行。我不能在本地机器上安装任何东西。

所以我已经调查了几天了,但我还没有找到一个好的方法来实现这一点。理想情况下,整个解码将使用Javascript/Jquery在客户端机器上进行。然而,我没有发现任何脚本/库可以做到这一点。我发现的唯一其他选项可能是javaservlet或php扩展;这两种情况都不理想,因为上传时间会把我推到分配的时间之外。

有人知道有什么javascript或JQuery库可以处理这个问题吗?

或者也许是一种更好的方式来整合我没有看到的功能?

我的贡献是双重的。首先(好消息!)我100%确信你想用JavaScript做的事情是可以实现的CAVEAT:Chrome/Firefox可能会很好,但它只能在Safari(6+)和IE(IE10+)的更现代版本中工作。来源http://caniuse.com/filereader

其次,我希望我的贡献能让你在解决这个问题方面走得更远,尽管我承认我还没有想出PDF417图像读取算法,这将是拼图的最后一块。

好的,开始:a) 让JavaScript(在客户端机器上运行)向用户提供GUI,允许他们从本地文件系统中选择一个文件(驾驶执照的图片),然后。。。b) 将其引入JavaScript应用程序(全部不涉及服务器或Java);和c) 。。。让JavaScript解析它并解释PDF417条形码的暗/亮模式,以推断其中编码的"明文"人类可读数据。我提到Java不是一个选项,因为Java小程序似乎永远不会被允许在Chrome中运行,尽管Java有一个很好的图像数据处理包,可以很好地排序。

理解和编码需要a)

多年来,HTML表单允许程序员使用文件上传字段。您需要:

<input type="file" id="myFileInput">

理解和编码需要b)

此外,在JavaScript方面,您需要(最重要的)使用HTML5FileReaderApi(请参阅http://blog.teamtreehouse.com/reading-files-using-the-html5-filereader-api)。。。相对:

var reader = new FileReader();
// ... and ...
reader.readAsDataURL(file);

其中readAsDataURL()将为您提供base64编码的二进制数据,当涉及到插入用var ing = new Image();实例化的图像实例的src属性时,该数据将对您起作用。即将src设置为data:image/gif;base64,*data*完成后,您至少可以在网页中显示驾驶执照。稍后,我会提到使用这个新实例化的图像并通过Canvas的2D上下文进行显示,作为将新图像附加到DOM中的替代方案,但我们稍后会讨论。到目前为止,我所讨论的内容都可以在博客.teamtreehouse.com的代码笔演示中看到(http://codepen.io/matt-west/pen/CfilG)。此外,为了更方便初学者了解FileReader(),您可能需要观看此视频(http://www.sitepoint.com/reading-images-data-using-canvas-javascript/)但要耐心,因为你想要的关于图像上传和显示的东西在5分钟30秒内才被提及。

理解c)所需的代码

这就是我失败的地方,因为我没能找到你想要的东西,但我确实为UPC格式的条形码找到了这个:http://badassjs.com/post/654334959/barcode-scanning-in-javascript(演示=http://tobeytailor.s3.amazonaws.com/get_barcode_from_image/index.html)。我不确定,但我认为要实现这一点,Tobey必须蚕食new Image()中的数据(一旦其src通过fileReader() API填充了数据),并在Canvas 2d上下文中使用它。它证明了这是可以做到的,但在编写算法以了解如何解释数据时,你必须理解PDF417:我发现这些链接是的有用起点

http://en.wikipedia.org/wiki/PDF417

http://omniplanar.com/PDF417-2D-Barcode.php

祝你好运!

我们做了一个原型,可以做你想做的事情,作为其中的一部分,我们创建了-https://github.com/PeculiarVentures/js-zxing-pdf417其处理PDF417解析。

此解决方案是100%的客户端。

我们发现了相机分辨率和缺乏自动对焦的问题,但如果你从文件中读取代码,你不会有问题。

我也相信,通过对网络摄像头拍摄的图片进行一些预处理(帧平均、锐化滤镜等),你甚至可以让网络摄像头外壳可靠地工作。

Emscriptenhttps://github.com/kripken/emscripten提供了一个现成的根,用于将C++编译为JavaScript。有一个交叉编译的PDF417阅读器演示https://www.newtonapples.net/PDF417_demo/USBcam_demo.html它将在连接了一个不错的USB网络摄像头的浏览器(Chrome或Firefox)中以javascript读取PDF417条形码。然而,该代码是商业性的,而不是开源的。

相关内容

  • 没有找到相关文章

最新更新