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


效果圖:

 

先給之前的群友道個歉,說聲不好意思。QRCoder 只支持二維碼,沒有條形碼。

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

BarcodeLibQRCoder 都是開源項目。

這兩個庫有什么優點:

1、沒有第三方依賴項。

2、使用簡單。

3、速度相對比較快。

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

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

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

源代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM