QT 二維碼庫
一、簡介
二維條碼/二維碼(2-dimensional bar code)是用某種特定的幾何圖形按一定規律在平面(二維方向上)分佈的黑白相間的圖形記錄資料符號資訊的,其應用廣泛,如:產品防偽/溯源、廣告推送、網站連結、資料下載、商品交易、定位/導航、電子憑證、車輛管理、資訊傳遞、名片交流、wifi共享等。
一維碼是用條空在水平方向上表達資訊的條碼,外形更接近矩形;二維碼可以說是正方形,在其內部有三個“回”字型的定位點,可以幫助條碼裝置對焦,便於讀取資料。一維碼的資訊部分只能是字母和數字,它的資料容量較小一般只可容納30個字元左右。二維碼的資訊承載量很大,最大資料含量可達1850個字元,資訊內容可包含,字母,數字,漢字,字元,片假名等。一維碼的常用碼制包括:EAN碼、39碼、交叉25碼、UPC碼、128碼、93碼,ISBN碼,及Codabar(庫德巴碼)等;二維碼常用的碼制有:PDF417二維條碼,Datamatrix二維條碼,QR
Code,Code 49,Code 16K,Code one等。
二、詳解
1、libqrencode庫(生成二維碼)
(1)qrcodewidget.h
- #ifndef QRCODE_H
- #define QRCODE_H
- #include <QWidget>
- #include <QTextCodec>
- namespace Ui {
- class QRCode;
- }
- class QRCodeWidget : public QWidget
- {
- Q_OBJECT
- public:
-
explicit QRCodeWidget(QWidget *parent
- ~QRCodeWidget();
- private slots:
- void on_pushButton_clicked();
- private:
- Ui::QRCode *ui;
- };
- #endif // QRCODE_H
(2)qrcodewidget.cpp
- #include <QPicture>
- #include "qrcodewidget.h"
- #include "ui_qrcode.h"
- #include "qrencode.h"
-
#include "qrenc.c"
- QRCodeWidget::QRCodeWidget(QWidget *parent) :
- QWidget(parent, Qt::Dialog),
- ui(new Ui::QRCode)
- {
- QTextCodec *codec = QTextCodec::codecForName("utf8");
- QTextCodec::setCodecForLocale(codec);
- QTextCodec::setCodecForCStrings(codec);
- QTextCodec::setCodecForTr(codec);
- ui->setupUi(this);
- }
- QRCodeWidget::~QRCodeWidget()
- {
- delete ui;
- }
- void QRCodeWidget::on_pushButton_clicked()
- {
- QString info = ui->lineEdit->text();
- if (info.isEmpty()) {
- return;
- }
- char outfile[] = "output.png";
- margin = 2;
- ::size = 7;
- version = 2;
- //QRcode *qrcode = QRcode_encodeString(info.toStdString().data(), 2, QR_ECLEVEL_L, QR_MODE_8, 0);
- //writePNG(qrcode, outfile);
- qrencode((unsigned char *)info.toStdString().data(), info.length(), outfile);
- ui->label_3->setPixmap(QPixmap(outfile));
- }
(3)main.cpp
- #include "qrcodewidget.h"
- #include <QApplication>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- QRCodeWidget w;
- w.show();
- return a.exec();
- }
(4)執行
也可是使用QrenCode 的命令列工具生成二維碼,在centos6.6下執行# yum install qrencode(或下載qrencode-3.4.4.tar.gz使用./configure、make、make install安裝);使用qrencode -o output.png https://www.baidu.com/即可在當前目錄下生成百度的二維碼圖片output.png;若想自定義尺寸的話,加上 -s 引數,比如 -s 6 表示尺寸為 6x6 平方像表大小,qrencode -s 6 -o output.png https://www.baidu.com/。命令列下識別二維碼的是#yum install libdecodeqr-examples,libdecodeqr-simpletest <二維碼圖片>。安裝zbar-0.10.tar.bz2,也可一識別二維碼。
2、zbar庫(識別二維碼)
/usr/local/include下,庫檔案在/usr/local/lib。(1)qrcodezbar.h
- #ifndef QRCODEZBAR_H
- #define QRCODEZBAR_H
- #include <QWidget>
- #include <QTextCodec>
- #include <QFileDialog>
- #include <zbar/QZBar.h>
- namespace Ui {
- class QZbar;
- }
- class QRCodeZbar : public QWidget
- {
- Q_OBJECT
- public:
- QRCodeZbar(QWidget *parent = 0);
- ~QRCodeZbar();
- private:
- private slots:
- void on_pushButton_clicked();
- private:
- Ui::QZbar *ui;
- zbar::QZBar *qz;
- };
- #endif // QRCODEZBAR_H
- #include "qrcodezbar.h"
- #include "ui_qzbar.h"
- #include "scanimage.h"
- #ifdef QRDECODE
- #include "scanimagemagick.h"
- #endif
- QRCodeZbar::QRCodeZbar(QWidget *parent)
- : QWidget(parent, Qt::Dialog)
- , ui(new Ui::QZbar)
- {
- QTextCodec *codec = QTextCodec::codecForName("utf8");
- QTextCodec::setCodecForLocale(codec);
- QTextCodec::setCodecForCStrings(codec);
- QTextCodec::setCodecForTr(codec);
- ui->setupUi(this);
- }
- QRCodeZbar::~QRCodeZbar()
- {
- }
- void QRCodeZbar::on_pushButton_clicked()
- {
- QString fileName = QFileDialog::getOpenFileName(this, tr("choose a picture"),
- QApplication::applicationDirPath(),
- tr("all Files (*.*)"));
- ui->lineEdit->setText(fileName);
- ui->label_3->setPixmap(QPixmap(ui->lineEdit->text()));
- char result[1024] = {0};
- #ifdef QRDECODE
- scanimagemagick(ui->lineEdit->text().toStdString().data(), result);
- #else
- scanimage(ui->lineEdit->text().toStdString().data(), result);
- #endif
- ui->textEdit->setText(result);
- }
相關推薦
QT 二維碼庫
一、簡介 二維條碼/二維碼(2-dimensional bar code)是用某種特定的幾何圖形按一定規律在平面(二維方向上)分佈的黑白相間的圖形記錄資料符號資訊的,其應用廣泛,如:產品防偽/溯源、廣告推送、網站連結、資料下載、商品交易、定位/導航、電子憑證、車輛管理、資訊傳遞、
開源二維碼庫libqrencode
http://www.myleftstudio.org/viewtopic.php?f=37&t=2558 編譯安裝 tar zxvf qrencode-3.4.2.tar.gz cd qrencode-3.4.2 ./configure make make ins
二維碼解碼器Zbar+VS2010開發環境配置(使用opencv庫)
nbsp () imread cfg 如何配置 lib eight ann dev Zbar條碼解碼器是一個開源的二維碼(包括條形碼)解碼器,可以識別來至於視頻流,圖像文件、手持掃碼器和視頻設備(如攝像頭)等二維碼識別,支持EAN-13/UPC-A, UPC-E, EAN-
c# 使用ZXing.dll庫生成二維碼
下載地址 style 工具 wid apach 點擊下載 bitmatrix 寬度 nbsp 最近工作中有需要一個需求,就是把一個服務地址生成二維碼,可以用來掃碼分享,網上找了下方法也比較多,我這裏po一下調用ZXing.dll庫生成二維碼的方法吧。先簡單介紹一下 ZXin
二維碼開源庫ZBar-MDK STM32F429移植
section ini scn eat ret 代碼 mode exec $$ 前兩篇文章已經實現ZBar在Windows平臺下的編譯和使用,本文將介紹如何把ZBar移植到STM32F429,IDE使用MDK。 1. MDK工程設置 (1)不勾選Use MicroLIB ,
如何在條碼標簽打印軟件中導入數據庫並做出彩色二維碼
F5 Oz tex 嘗試 二維 技術分享 多功能 對象 dbf 我們現在看到的二維碼大部分都是黑白相間的,但是二維碼也是有彩色的,那麽彩色二維碼是怎麽做出來的呢,如果有txt的數據文件,如何實現導入數據庫生成可變的彩色二維碼,接下來我們就在我們的中瑯條碼標簽軟件中為大家演示
Javascript 二維碼生成庫:QRCode
ctype sca stat assets ret asset lang UNC .org <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xht
基於PHP類庫PHPqrCode生成帶LOGO二維碼
PHPqrCode是一個PHP二維碼生成類庫,利用它可以輕鬆生成二維碼,官網提供了下載和多個演示demo,檢視地址:http://phpqrcode.sourceforge.net/。下載官網提供的類庫後,只需要使用phpqrcode.php就可以生成二維碼了,當然您的PHP環境必須開啟支援GD2。
一維碼和二維碼開源庫zint學習
一、資源下載 zint本來是可以不需要任何其他庫(libpng和zlib)的支援,但是如果希望zint能夠生成PNG格式的圖片,那麼就需要libpng的支援,而libpng需要zlib的支援。 zint下載:https://github.com/zint/zint libpng庫下載
PHP 使用GD庫合成二維碼和海報
PHP 使用GD庫合成二維碼和海報 在做微信專案開發過程中,經常會遇到圖片合成的問題,比如將使用者的二維碼合成到宣傳海報中,那麼,遇到這種情況,利用PHP的GD庫也是很容易實現的,實現步驟如下 1、首先是將二維碼縮小為300*300,因為使用微信公眾號介面獲取的二維碼尺寸為430*430,圖片有點大,所以
Android二維碼掃描庫zxing的使用
Android二維碼的使用: 1.匯入依賴: compile 'com.journeyapps:zxing-android-embedded:3.3.0' 2.建立ScannerAcvitity,在佈局中使用以下控制元件: <com.journeyapps.
使用python3調用MyQR庫生成動態二維碼(附源代碼)
就是 帶圖片 git int 大小 產生 小問題 中文版 暫時 可生成普通二維碼、帶圖片的藝術二維碼(黑白與彩色)、動態二維碼(黑白與彩色)。 GitHub:https://github.com/sylnsfar/qrcode 中文版:https://githu
Qt生成或解析二維碼
以上生成和解析二維碼用了兩個庫:(QRCode、QZXing) 這兩個庫可以自行下載。說一下引用,在pro中增加對應pri的路徑: include(QRCode/QRCode.pri) incl
thinkPHP5引入endroid/qr-code類庫生成指定二維碼(本例生成指定網址)
我在專案開發中需要使用到的常見的一些類庫,基本都是Packagist / Composer 中國全量映象上找到,然後使用composer直接安裝。 廢話不多說開始吧! 在搜尋框中輸入endroid/qr-code, 點選第一個連結進入, 下滑找到這句話
Qt專案實戰3:二維碼生成器
qrtool專案簡介 二維碼(Qrcode)現在越來越常用,掃碼支付、掃碼新增好友、掃碼乘坐公交車和地鐵,我們的生活已經與二維碼息息相關。這裡我們使用qt軟體+qrencode開源庫來生成、顯示、儲存二維碼圖片,並且支援簡單的二維碼容錯率修改和大小修改。 ui效
開源二維碼QR CODE編碼/解碼 識別 庫
在很近很近的未來,城市疏導局(前身是城市管理局)實行新政,秉持“用高科技提升城市形象”的原則,要給辦證從業人員開闢專門的廣告塗鴉牆,條件是:不得使用手工噴塗的字型,而必須改用工整的、不影響大眾視覺的二維碼。 上面的訊息,是“未來的我”給“現在的我”的提醒,看完條訊息,發財無門的我很興奮,辦證是一個多
WIndow下使用QT C++開發生成帶Logo的二維碼的程式
現在二維碼很流行,大街小巷大小商品廣告上的二維碼標籤都隨處可見,而且大都不是簡單的純二維碼,而是中間有個性圖示的二維碼。網上比較少介紹基於windows下的C++二維碼編碼實現的文章,最近正好在windows平臺下使用QT開發了一個簡單的生成帶LOGO的二維碼小程式,特
QT中實現二維碼圖片生成
Linux環境下QT中實現二維碼生成有兩種方法,這兩種方法都需要用到開源的程式碼--qrencode。第一種方法是下載qrencode原始碼後,將其移植到目標板子上,然後在程式中包含其路徑進行使用;第二種方法是將qrencode原始碼新增到自己的程式中,直接呼叫使用。本文使用的第二種方法進行生成二維
python二維碼生成庫(qrcode)簡介和例項
使用該庫時,需要安裝image庫,而image庫依賴於django、olefile、pillow庫。 使用pip安裝的命令如下: pip install qrcode pip install image安裝成功的圖示: 在命令列使用 在命令列使用語句: qr "som
二維碼編碼與解碼類庫ThoughtWorks.QRCode
有原始碼和示例程式 支援二維碼編碼(生成)和解碼(識別) 似乎不支援中文,不過可以自己修改原始碼的編碼格式來支援中文 我比較關注二維碼識別功能,所以比較詳細的測試了 1、非居中、帶LOGO、彩色二維碼均能識別 2、有大量干擾的情況下識別失敗 3、將二維碼旋轉到15度左右