Qt 之二维码扫描
簡述
二維碼(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(中文)
二維碼編碼/解碼庫:
ZXing
ZXing是一個開放源碼的,用Java實現的多種格式的1D/2D條碼圖像處理庫,包含了聯系到其他語言的端口。
網址:https://code.google.com/p/zxing.
Libqrencode
Libqrencode(QRencode)是一個用C語言編寫的用來解析二維條形碼(QR Code)的程序庫,Libqrencode通過手機的CCD攝像頭來掃描二維條形碼。二維碼容量可達7000個數字或4000個字符,是非常強大的。
網址:http://fukuchi.org/works/qrencode/.
ZBar
ZBar是款桌面電腦用條形碼/二維碼掃描工具,支持攝像頭及圖片掃描,支持多平臺包括iPhone手機。同時 ZBar提供了二維碼掃描的API開發包。
網址:http://zbar.sourceforge.net.
更多參考:http://sourceforge.net/apps/mediawiki/zbar/index.php.
Open Source QR Code Library
二維碼編碼/解碼的Java庫(J2SE, J2ME MIDP2.0/CLDC1.0)。
網址:http://qrcode.sourceforge.jp/index.html.en.
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 -lQZXing2INCLUDEPATH += 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)保持同一目錄級別。。。
總結
- 上一篇: 设计模式原型模式
- 下一篇: java深拷贝和浅拷贝介绍