使用摄像头解析二维码,且可以生成含具体信息的二维码


开源一份早些时候写过的代码,关于二维码在PC端的应用。

二维码的具体应用范围,这里不详述。

之前项目主要用于朋友一个牙科的平台,不过后面没有采用,也就没有往后继续开发,大家要是觉得有意思,可以自己拿去改改。

在这上面还可以有很多玩法,例如开发一个小工具,直接在PC端解读屏幕上的二维码,或者做超市或其他终端二维码解析,或者二维码标签等。


现在完成的功能主要有:

2013/03/27 V1.1
增加OpenCV接口,解析图片速度很快。

2013/03/28 V1.2
大量改动代码,增加图片显示,解析。
支持图片文件拖放显示。

2013/04/08 V1.3
修正图片识别率低的问题。opencv cvImageLoadM
加入zint库,用于生成二维码。
bug: 中文问题尚未解决。

2013/05/12 V2.0
1. 加入了数据库sqlite的支持,可以新增,查询。
2. 定义联系人二维码存储数据结构。
3. 修正二维码解析中文乱码问题,需要修改过的的Zbar库支持。
bug: 图像数据不应存入数据库,查找速度慢,操作不方便。


已有一段时间没有弄这个了,而且在界面操作不甚友好,将就着还是可以用于学习的。

前面一些博文中介绍的内容,在这篇博客中也得到具体的应用。

界面如下:

左侧是用于二维码解析,可以是图片,可以是摄像头采样,解析速度可以说超快。

右侧则是数据库相关操作,也可用于生成二维码。默认生成的二维码存放在当前目录,名称为 d.png


当然还有很多功能没有完善,各位不要见怪。

而且现在一段时间比较忙,博客可能本身关注得少些。。。。


编译说明:

程序需要如下一些头文件:


对应的库文件目录:


ImageMagik-6.8.3 是 ImageMagick++接口,这个接口配合 libdecodeqr 也能做二维码解析,只是效率太差。这两个库不是必须的,可以自行将涉及到这部分的代码删除再编译。

也就是有3个必要的东西,lpng1514也就是 libpng库,这是zbar和zint必须的库。

zbar和zint就不多说了。 我另外的博文中有介绍。


运行时库,分为调试版与发行版,对应的目录需要稍作修改,具体的跟自己的编译环境配置有关。这里都是以 debug 版本进行说明。


也就说依赖 OpenCV2.0库,Zbar 库,SQLite3 库,以及zint库。

OpenCV2.0 可以自行下载后编译,源码含有vs2008工程。 debug对应的文件名为  xxxx d.dll

Zbar库,对应着 libzbar-0.dll,这个是由 zbar-0.10 项目生成的,需要msys环境编译。libiconvl 是编译zbar时必须的一个依赖库。

Zint库,对应着 zintd.dll,下载该项目源码,含有vs工程,自行编译即可。


另外编译需要的是耐心,所以不要急躁,遇到不能解决的,或是比较麻烦的先 google 查找下,很多时候都有一些志同道合的朋友已经遇到过,并且给出了解决方法。


源码目录稍微做下说明:

SystemInfo.h

SystemInfo.cpp   这是主体功能,生成二维码,解析二维码等都在这个文件中


TwoDemensionDlg.cpp 这是程序主体界面接口


QueryDataDlg.cpp 则是数据库方面的应用了。


源码位置: 下载源码

写博客不容易,写得不好,万物见怪。

另 转载请注明出处,谢谢。



  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
qrcode.js 不支持直接调用手机摄像头扫描二维码,因为它本身是一个用于生成解析二维码的 JavaScript 库,无法直接访问摄像头。 如果需要在移动设备上调用摄像头扫描二维码,可以使用一些第三方的 JavaScript 库,如 ZXing 或 QuaggaJS。 以下是一个使用 QuaggaJS 调用摄像头扫描二维码的示例代码: ```javascript // 引入 QuaggaJS 库 import Quagga from 'quagga'; // 获取视频元素和结果元素 const video = document.getElementById('video'); const result = document.getElementById('result'); // 初始化 QuaggaJS Quagga.init({ inputStream : { name : "Live", type : "LiveStream", target: video }, decoder : { readers : ["code_128_reader", "ean_reader", "ean_8_reader", "code_39_reader", "code_39_vin_reader", "codabar_reader", "upc_reader", "upc_e_reader", "i2of5_reader"] } }, function(err) { if (err) { console.log(err); return; } console.log("QuaggaJS initialization succeeded"); // 开始扫描 Quagga.start(); // 监听扫描到的二维码 Quagga.onDetected((data) => { result.textContent = data.codeResult.code; }); }); ``` 在上述代码中,我们首先引入了 QuaggaJS 库,然后获取了视频元素和结果元素。接着,我们使用 `Quagga.init()` 方法初始化 QuaggaJS,将视频元素作为输入流,并指定需要识别的二维码类型。初始化完成后,我们使用 `Quagga.start()` 方法开始扫描,同时使用 `Quagga.onDetected()` 方法监听扫描到的二维码,将解码结果显示在结果元素中。 需要注意的是,使用 QuaggaJS 调用摄像头扫描二维码需要浏览器支持 WebRTC 技术,因此在一些老旧的浏览器上可能无法正常工作。另外,在移动设备上使用摄像头扫描二维码时,需要请求用户授权访问摄像头

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值