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

源代码

相关文章
相关标签/搜索