Qt 之二维码扫描

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

二维码(QR Code)是用某种特定的几何图形按一定规律在平面(二维方向)分布的黑白相间的图形记录数据符号信息的。是所有信息数据的一把钥匙。应用十分广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等。

二维条码常用的码制: Data Matrix、MaxiCode、Aztec、QR Code、Vericode、PDF417、Ultracode、Code 49、Code 16K等。

二维码与一维码

二维码与一维码的对比:

  • 一维码:只能在一个方向(一般是水平方向)上表达信息,只能由数字和字母组成。
  • 二维码:在水平和垂直方向都可以存储信息,能存储汉字、数字和图片等信息。

可以看出,二维码是一种比一维码更高级的条码格式,应用领域也要广得多。

二维码官网:

  • http://www.qrcode.com/en/index.html(英文)
  • http://www.qrcode.com/zh/index.html(中文)

二维码编码/解码库:

  1. ZXing
    ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,包含了联系到其他语言的端口。
    网址:https://code.google.com/p/zxing.

  2. Libqrencode
    Libqrencode(QRencode)是一个用C语言编写的用来解析二维条形码(QR Code)的程序库,Libqrencode通过手机的CCD摄像头来扫描二维条形码。二维码容量可达7000个数字或4000个字符,是非常强大的。
    网址:http://fukuchi.org/works/qrencode/.

  3. ZBar
    ZBar是款桌面电脑用条形码/二维码扫描工具,支持摄像头及图片扫描,支持多平台包括iPhone手机。同时 ZBar提供了二维码扫描的API开发包。
    网址:http://zbar.sourceforge.net.
    更多参考:http://sourceforge.net/apps/mediawiki/zbar/index.php.

  4. Open Source QR Code Library
    二维码编码/解码的Java库(J2SE, J2ME MIDP2.0/CLDC1.0)。
    网址:http://qrcode.sourceforge.jp/index.html.en.

  5. QZXing
    Qt包装ZXing的解码库。
    网址:http://sourceforge.net/projects/qzxing.
    更多参考:https://projects.developer.nokia.com/QZXing.

QZXing解码

效果

这里写图片描述 这里写图片描述

编译

下载QZXing之后,解压缩(E:/Qt/QZxing),然后进行编译,编译完成后,会生成:QZXing2.dll、QZXing2.lib。

将对应的库文件拷贝至当前lib目录下,在pro中进行如下配置:

LIBS += -L$$PWD/lib -lQZXing2

INCLUDEPATH += E:/Qt/QZxing

源码

识别二维码

void MainWindow::showQRCode(const QString &file)
{
    if (!file.isEmpty())
    {
        QPixmap pixmap(file);
        m_pImageLabel->setPixmap(QPixmap(file));
        m_pPathLineEdit->setText(file);

        // 二维码解码
        QZXing *pDecoder = new QZXing(QZXing::DecoderFormat_MAXICODE);
        QString strQRCode = pDecoder->decodeImage(pixmap.toImage());
        
        if (!strQRCode.isEmpty())
        {
            m_pDetailsEdit->setTextColor(QColor(230, 230, 230));
            m_pDetailsEdit->setText(strQRCode);
        }
        else
        {
            m_pDetailsEdit->setTextColor(Qt::red);
            m_pDetailsEdit->setText(QString::fromLocal8Bit("识别二维码信息失败!"));
        }
    }
}

如下,是我用QZXing实现的一个二维码扫描器:
下载地址:http://download.csdn.net/detail/u011012932/6594155.

友情提示:关于jpg等格式的识别,需要拷贝imageformats文件夹与可执行文件(*.exe)保持同一目录级别。。。

智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一去丶二三里

有收获,再打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值