1

我目前在我的 silver-light 项目上运行 zxing 库。

它不是闪电般快速,但它工作正常且准确。

但是......限制是有些人使用 Linux 并且即使使用单声道(月光),silver-light 在某些 Linux 平台上也不能很好地运行(如果有的话)

所以我正在尝试开发一些可以直接从 html5 页面解码条形码然后通过调用服务将这些信息发送到我的服务器的东西。

我目前正在使用 c#。

我有 zxing jar 文件,但几乎不知道如何在 html5 页面中使用它们。

我使用 html5 getUserMedia 启动并运行了网络摄像头,并且可以从流中抓取一个帧并将其放入画布中,但无法弄清楚如何将其与 zxing 库集成。

任何和所有的帮助将不胜感激。

4

2 回答 2

2

我正在做类似的事情。麻烦的是,我也没有让它完全工作。但也许这会有所帮助:

和你一样,我得到了一个带有画布的 HTML5 网络摄像头来捕捉条形码的静止图像。要使用 ZXING 的东西,您需要自己从源代码编译 java 文件,或者获取预编译的 .war 文件并找到某种方式来托管 servlet。我正在使用 tomcat 托管我的,其中预编译的战争从 maven 存储库 ( http://repo1.maven.org/maven2/com/google/zxing/zxingorg/2.2/ ) 中拉下来。

一旦设置好了,ZXING 解码 servlet 就会期望一个 URL 或一个来自 html 表单的文件,该表单的操作设置为解码 servlet 的 url。因此,您可以在画布上获取捕获的条形码,将其保存到文件中,然后让用户通过 html 页面手动提交文件(就像 zxing.org 网络版本一样),这样就可以了。但是,如果你想无缝地拍摄静止图像并将其发送到 ZXING 解码器,那就有点困难了,这也是我遇到的问题。

我首先使用 javascript 将画布的图像转换为 blob(请注意,这仅适用于 Firefox,因为 Chrome 尚不支持画布 blob。不知道 IE)。然后我创建了一个新的 FormData 对象,为其提供网页上现有表单的 id,并将 blob 附加到该表单。然后我使用网页上的提交按钮来实际提交表单,它通过 post 将其发送到解码 servlet。然后我得到一个漂亮的白页,其中包含有关未声明纯文本文档的字符编码的控制台错误。

我还尝试在 javascript 文件中创建一个新的 XMLHttpRequest,将画布 blob 附加到该文件而不是现有的 html 表单,然后通过它提交。根据控制台,这似乎有点远(控制台将显示它是否重定向到“未找到结果”页面或结果页面),但我实际上无法查看/操作输出数据。

抱歉,我无法提供更多帮助。我很想看到有人得到一个完全基于网络的版本,因为 ZXING 似乎非常擅长解码过程。

于 2013-06-21T18:18:27.290 回答
2

您可以使用一些本机 JS 条形码扫描库:

最后一个显然是zxing的一个端口,虽然它看起来像是为二维码扫描量身定做的。

于 2013-06-10T20:35:48.170 回答