C# 二維碼/條形碼入門操做

效果圖:git

 

先給以前的羣友道個歉,說聲很差意思。QRCoder 只支持二維碼,沒有條形碼。github

以上demo生成條形碼是用 BarcodeLib 這個庫,識別是用 zxing,二維碼生成用 QRCoder,識別也用 zxing。其實原本不想用 zxing 這個庫的。可是 BarcodeLib 只能生成條形碼,不能讀取條形碼,QRCoder只能生成二維碼,不能讀取二維碼。因此就用到了 zxing 這個庫。spa

BarcodeLibQRCoder 都是開源項目。.net

這兩個庫有什麼優勢:code

一、沒有第三方依賴項。blog

二、使用簡單。get

三、速度相對比較快。it

固然缺點也很明顯,不能識別條形碼/二維碼。io

這兩個庫均可以使用 nuget 添加到你的項目中。class

BarcodeLib

QRCoder

BarcodeLib 生成條形碼核心代碼:

BarcodeLib.Barcode b = new BarcodeLib.Barcode();
Image img = b.Encode(BarcodeLib.TYPE.UPCA, "038000356216", Color.Black, Color.White, 290, 120);

QRCoder 生成二維碼核心代碼:

QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("The text which should be encoded.", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);

以上核心代碼很簡單,實際上是我從 git 裏面拷貝貼過來的。可是要比較靈活的使用,就須要本身進行一個簡單的封裝。

 

讀取條形碼和二維碼我都是使用了 zxing 這個庫。

zxing 這個庫就比較強大了,既能生成條形碼/二維碼還能識別條形碼/二維碼,還能生成pdf,並且適用於多個平臺。這些在 git 項目介紹就有說明。

條形碼識別代碼:

BarcodeReader reader = new BarcodeReader();
Bitmap bitmap = new Bitmap(picBarCode.BackgroundImage);
Result result = reader.Decode(bitmap); // result.Text 就是條形碼的內容

二維碼識別代碼:

BarcodeReader reader = new BarcodeReader();
reader.Options.CharacterSet = "UTF-8";
Bitmap bitmap = new Bitmap(picQRCode.BackgroundImage);
Result result = reader.Decode(bitmap); // result.Text 就是二維碼的內容

 使用 nuget  將 zxing 這個庫添加到本身項目中。

zxing 這個庫功能比較強大。若是須要更多的功能以及適應更多平臺能夠考慮使用zxing。

完整 demo

源代碼

相關文章
相關標籤/搜索