我正在做类似的事情。麻烦的是,我也没有让它完全工作。但也许这会有所帮助:
和你一样,我得到了一个带有画布的 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 似乎非常擅长解码过程。