欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 二维码/条形码入门操作

程序员文章站 2022-03-17 11:40:14
效果图: 先给之前的群友道个歉,说声不好意思。QRCoder 只支持二维码,没有条形码。 以上demo生成条形码是用 BarcodeLib 这个库,识别是用 zxing,二维码生成用 QRCoder,识别也用 zxing。其实本来不想用 zxing 这个库的。但是 BarcodeLib 只能生成条形 ......

效果图:

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。

完整