我目前在我的银光项目上运行了zxing lib。
它并不快闪,但它的工作正常且准确。
然而......局限性是有些人使用Linux并且银光在一些Linux平台上运行得不好(如果有的话),即使是单声道(月光)
所以我正在尝试开发一些能直接从html5页面解码条形码的东西,然后通过调用服务将这些信息发送到我的服务器。
我目前正在使用c#。
我有zxing jar文件,但很少知道如何在html5页面中使用它们。
我使用html5 getUserMedia启动并运行网络摄像头,可以从流中抓取一个帧并将其放入画布中,但无法确定如何将其与zxing库集成。
任何和所有帮助将不胜感激。
答案 0 :(得分:2)
您可以使用一些原生的JS条形码扫描库:
最后一个显然是zxing的一个端口,虽然看起来它适合QR码扫描。
答案 1 :(得分: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 Web版本完全相同),这样就可以了。但是,如果您想要无缝地捕获捕获的静态图像并将其发送到ZXING解码器,那就更困难了,这也是我陷入困境的地方。
我首先使用javascript将画布的图像转换为blob(请注意,这只适用于Firefox,因为Chrome还不支持canvas blob。不知道IE)。然后我创建了一个新的FormData对象,为它提供了网页上表单的现有id,并将blob附加到该表单。然后我使用网页上的提交按钮来实际提交表单,然后通过post将其发送到解码servlet。然后,我得到一个漂亮的白页,其中包含有关未声明的纯文本文档的字符编码的控制台错误。
我还尝试在javascript文件中创建一个新的XMLHttpRequest,将canvas blob附加到该文件而不是现有的html表单,并通过它提交。根据控制台,这似乎有点进一步(控制台将显示它是否重定向到“未找到结果”页面或结果页面),但我实际上无法看到/操纵输出数据。
抱歉,我无法提供更多帮助。我很乐意看到有人得到一个完全基于网络的版本,因为ZXING似乎非常擅长解码过程。