二維碼識別源碼
❶ C#生成二維碼(QR碼)
C# 二維碼的代碼:
using Spire.Barcode;
using System.Drawing;
namespace CreateQRCode
{
class Program
{
static void Main(string[] args)
{
//創建BarcodeSettings對象
BarcodeSettings settings = new BarcodeSettings();
//應用Key,去logo
BarcodeSettings.ApplyKey("4KRJD-1K294-JJG9Z-SNR36-3P7IU");
settings.Type = BarCodeType.QRCode;//設置條碼類型為二維碼
settings.Data = "123456789";//設置二維碼數據
settings.Data2D = "123456789";//設置顯示文本
settings.ShowText = false;//設置二維碼數據文本不顯示
/*settings.ShowText = true;//顯示數據文本
settings.ShowTextOnBottom = true;//數據文本顯示在二維碼底部*/
settings.QRCodeDataMode = QRCodeDataMode.Numeric;//設置數據類型為數字
settings.QRCodeECL = QRCodeECL.H;//設置二維碼錯誤修正級別
settings.X = 3.0f;//設置寬度
BarCodeGenerator generator = new BarCodeGenerator(settings);//實例化BarCodeGenerator類的對象
//生成二維碼圖片並保存為PNG格式
Image image = generator.GenerateImage();
image.Save("QRCode.png");
}
}
}
這里的實現方法藉助專門的barcode生成根據spire.barcode for .net提供的類以及方法,解析二維碼可以參考如下代碼:
using System;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Spire.Barcode;
namespace ScanBarcode{
public partial class Form1 : Form {
public Form1()
{
InitializeComponent();
}
private void btnLoadImage_Click(object sender, EventArgs e)
{
//載入條形碼圖片
Image image = Image.FromFile("Code128.png");
pictureBox1.Image = image;
}
private void btnReadData_Click(object sender, EventArgs e)
{
Bitmap bitmap = new Bitmap(pictureBox1.Image);
//識別條形碼圖片中的數據(BarcodeScanner類包含多個Scan重載方法,可根據自己的需求選擇相應的方法)
string[] data = BarcodeScanner.Scan(bitmap, BarCodeType.Code128);
for (int i = 0; i < data.Length; i++)
{
this.textBox1.Text += data[i].ToString();
}
}
}}
—End—
❷ 網上流行的二維碼是怎麼讀取的求詳細
二維條碼/二維碼(2D code.QR Code-abbreviated from Quick Response Code, a
form of 2D code-is the most known one)[1]是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形記錄數據符號信息的;在代碼編制上巧妙地利用構成計算機內部邏輯基礎的「0」、「1」比特流的概念,使用若干個與二進制相對應的幾何形體來表示文字數值信息,通過圖象輸入設備或光電掃描設備自動識讀以實現信息自動處理:它具有條碼技術的一些共性:每種碼制有其特定的字元集;每個字元佔有一定的寬度;具有一定的校驗功能等。同時還具有對不同行的信息自動識別功能、及處理圖形旋轉變化等特點。在許多種類的二維條碼中,常用的碼制有:Data
Matrix, Maxi Code, Aztec, QR Code,
Vericode, PDF417, Ultracode, Code
49, Code 16K 等,QR碼是1994年由日本Denso-Wave公司發明。QR來自英文「Quick
Response」的縮寫,即快速反應的意思,源自發明者希望QR碼可讓其內容快速被解碼。QR碼最常見於日本、韓國;並為目前日本最流行的二維空間條碼。[
❸ Android 小黃車掃描二維碼用的啥框架
這里簡單介紹一下ZXing庫。ZXing是一個開放源碼的,用java實現的多種格式的1D/2D條碼圖像處理庫,它包含了聯繫到其他語言的埠。Zxing可以實現使用手機的內置的攝像頭完成條形碼的掃描及解碼。該項目可實現的條形碼編碼和解碼。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39碼、93碼。ZXing是個很經典的條碼/二維碼識別的開源類庫,以前在功能機上,就有開發者使用J2ME運用ZXing了,不過要支持JSR-234規范(自動對焦)的手機才能發揮其威力。
下面是ZXing的demo運行,我這里創建了一個二維碼,內容是我博客的網址,大夥可以用微信的掃一掃功能,試一下。就可以直接打開我博客。
❹ 二維碼的識別原理是什麼能造假(仿造)嗎
二維條碼/二維碼是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形記錄數據符號信息的;在代碼編制上巧妙地利用構成計算機內部邏輯基礎的「0」、「1」比特流的概念。
使用若干個與二進制相對應的幾何形體來表示文字數值信息,通過圖象輸入設備或光電掃描設備自動識讀以實現信息自動處理:
它具有條碼技術的一些共性:每種碼制有其特定的字元集;每個字元佔有一定的寬度;具有一定的校驗功能等。同時還具有對不同行的信息自動識別功能、及處理圖形旋轉變化等特點。 二維條碼/二維碼能夠在橫向和縱向兩個方位同時表達信息,因此能在很小的面積內表達大量的信息。
二維碼生成器的製作需要一個二維碼生成演算法,或者一個二維碼插件,然後用JAVA ,C#, VB等編程語言編寫一個調用軟體就可以做成二維碼生成器了。
二維碼可以偽造,一般的二維碼沒有防偽功能;個人就能從網上下載二維碼自動生成器,製作二維碼。甚至有些不法分子設計了帶病毒的二維碼,竊取他人手機內的個人信息。專家建議手機用戶,要有安全意識,不要輕易掃不明來源的可疑二維碼。
(4)二維碼識別源碼擴展閱讀:
簡單的說,二維碼就是把你想表達的信息翻譯成黑白兩種小方塊,然後填到這個大方塊中。有點類似我們中學的答題卡,就是把我們的語言翻譯成機器可識別的語言,說白了就是把數字、字母、漢字等信息通過特定的編碼翻譯成二進制0和1,一個0就是一個白色小方塊,一個1就是一個黑色小方塊。
當然這其中還有很多糾錯碼,假如需要編碼的碼字數據有100個,並且想對其中的一半,也就是50個碼字進行糾錯,則計算方法如下。糾錯需要相當於碼字2倍的符號,因此在這種情況下的數量為50個×2=100碼字。
因此,全部碼字數量為200個,其中用作糾錯的碼字為50個,也就是說在這個二維碼中,有25%的信息是用來糾錯的,所以這也就解釋了二維碼即使缺了一點或者變皺了也一樣能被識別。
有些朋友可能會問,為什麼每個二維碼上都會有三個黑色大方塊呢?那就要涉及下面的內容:手機是如何識別二維碼的。
由於不同顏色的物體,其反射的可見光的波長不同,白色物體能反射各種波長的可見光,黑色物體則吸收各種波長的可見光。
所以當攝像頭掃描黑白相間的二維碼上時,手機利用點運算的閾值理論將採集到的圖象變為二值圖像,即對圖像進行二值化處理,得到二值化圖像後,對其進行膨脹運算,對膨脹後的圖象進行邊緣檢測得到條碼區域的輪廓。
❺ C語言或C++編寫二維碼的解碼部分詳細的源代碼及說明
1、二維碼有很多種標准,可以控制存儲數據的信息量,也可以控制容錯的數據量[使得部分污損的二維碼可以被正常讀取。通常的做法是調用二維碼設計方提供的組件,如果是自己生成二維碼,應該可以生成可以看起來很像的東西。
2、常式:
<pre name="code" class="cpp">int Fb_QrDisp(int iPenX,int iPenY,QRcode*pQRcode)
{
T_PixelDatasg_tOriginPixelDatas;
T_PixelDatasg_tZoomPixelDatas;
//intiZoom;
inti;
g_tOriginPixelDatas.iWidth= pQRcode->width;
g_tOriginPixelDatas.iHeight=pQRcode->width;
g_tOriginPixelDatas.iLineBytes=g_tOriginPixelDatas.iWidth;
g_tOriginPixelDatas.aucPixelDatas= pQRcode->data;
/*
if(pQRcode->version< = 1)
{
iZoom= 2;
}
else
{
iZoom= 2;
}
g_tZoomPixelDatas.iWidth = pQRcode->width*iZoom;
g_tZoomPixelDatas.iHeight=pQRcode->width*iZoom;
g_tZoomPixelDatas.iLineBytes=g_tZoomPixelDatas.iWidth;
g_tZoomPixelDatas.aucPixelDatas= malloc(g_tZoomPixelDatas.iWidth* g_tZoomPixelDatas.iHeight);
if(g_tZoomPixelDatas.aucPixelDatas== NULL)
{
printf("g_tZoomPixelDatas->aucPixelDatasmalloc failed ");
return-1;
}
PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas);
#if 0
printf("g_tZoomPixelDatas.iWidth=%d,g_tZoomPixelDatas.iHeight=%d ", g_tZoomPixelDatas.iWidth,g_tZoomPixelDatas.iHeight);
for(i=0;i<(g_tZoomPixelDatas.iWidth*g_tZoomPixelDatas.iHeight);i++)
{
printf("0x%x,",g_tZoomPixelDatas.aucPixelDatas[i]);
}
printf(" ");
#endif
*/
Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas);
return 0;
}
因為stmf429運行起來後內存不夠,這里不用申請內存再擴充放大二維碼數據的方法,而是直接描點。所以這里注釋掉了放大部分。
❻ PDF417二維碼生成源碼.net程序
下這個吧. 自己看看源碼就OK了:
http://www.pudn.com/downloads150/sourcecode/graph/detail648336.html
❼ 能將你基於mfc對話框生成的二維碼代碼給我看看嗎
貌似網上有MFC的識別和生成二維碼的源碼。
❽ 怎麼製作用攝像頭識別二維碼的軟體,用vb或C++做的
首先要寫一個從攝像頭讀取數據的代碼,這部分可以用opencv來搞定,再就是從圖片識別出二維碼,這部分網上應該也有源碼。如果你分別找這兩部分的源碼,比你把整個需求寫出來找源碼要容易的多。要不你試試按上面的搜一下,自己寫起來還是比較麻煩的,老闆又叫板磚了,恕我不給你寫源碼了。。。
❾ html5+js實現二維碼掃描
通過下面的代碼即可實現:
HBuilder就有調用原生硬體的介面html5++
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8">
<title>CameraExample</title>
<scripttype="text/javascript">
//擴展API載入完畢後調用onPlusReady回調函數
document.addEventListener("plusready",onPlusReady,false);
varr=null;
//擴展API載入完畢,現在可以正常調用擴展API
functiononPlusReady(){
//獲取設備默認的攝像頭對象
varcmr=plus.camera.getCamera();