ZXing.Net:一个开源条码生成和识别器,职场二维码、条形码等

推荐一个跨平台的非常流行的条码库,方便我们在.Net项目集成条码扫描和生成功能。

01
项目简介
ZXing.Net是ZXing的.Net版本的开源库。支持跨多个平台工作,包括 Windows、Linux 和 macOS,以及在 .NET Core 和 .NET Framework 上运行。
解码器支持以下条形码:UPC-A、UPC-E、EAN-8、EAN-13、Code 39、Code 93、Code 128、ITF、Codabar、MSI、RSS-14(所有变体)、QR Code、Data Matrix、Aztec和PDF-417。
编码器支持以下格式:UPC-A、EAN-8、EAN-13、Code 39、Code 128、ITF、Codabar、Plessey、MSI、QR Code、PDF-417、Aztec、Data Matrix
支持.Net 2.0+、UWP、Unity3D、Xamarin.Android、支持COM互操作,可与VBA一起使用。

02
使用示例
1、安装依赖库
Install-Package ZXing.Net
2、生成二维码
using ZXing;
using ZXing.QrCode;
using ZXing.Rendering;
using static ZXing.Rendering.SvgRenderer;

// 创建一个编码器实例
var writer = new BarcodeWriter()
{
Format = BarcodeFormat.QR_CODE, // 设置条码格式为 QR_CODE
Options = new QrCodeEncodingOptions
{
Height = 250, // 设置 QR 码的高度
Width = 250 // 设置 QR 码的宽度
},
Renderer = new SvgRenderer()
};

// 指定要编码的文本
string encodedData = “https://www.example.com”;

//生成二维码
var svg = writer.Write(encodedData);
File.WriteAllText(“qrCode.svg”, svg.Content);
在浏览器打开,效果如下:

3、识别二维码
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
using ZXing;

Func createLuminanceSource = _image => CreateLuminanceSourceFromMyImageType(_image);
var reader = new BarcodeReader(createLuminanceSource);
var image = Image.FromFile(“f:/qrcode.jpg”);
var result = reader.Decode(image);
Console.WriteLine(result);

/// /// 转换 ///
///
///
LuminanceSource CreateLuminanceSourceFromMyImageType(Image image)
{
// 转换为Bitmap,以便可以访问像素数据
Bitmap bitmap = image as Bitmap ?? new Bitmap(image);

// 锁定位图的内存区域以获取原始图像数据  
Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
BitmapData bitmapData = bitmap.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);

// 计算需要的字节数组大小(每像素3字节:R, G, B)  
int bytes = bitmapData.Stride * bitmap.Height;
byte[] rgbRawBytes = new byte[bytes];

// 将原始图像数据复制到数组中  
Marshal.Copy(bitmapData.Scan0, rgbRawBytes, 0, bytes);

// 解锁位图的内存区域  
bitmap.UnlockBits(bitmapData);

// 释放Bitmap资源(如果它不是传入的原始Image)  
if (bitmap != image)
{
    bitmap.Dispose();
}
return new RGBLuminanceSource(rgbRawBytes, image.Width, image.Height);

}
效果如下:

04
项目地址

https://github.com/micjahn/ZXing.Net
最后推荐加入我的 知识星球,里面包含7个教程,其中有:《三层架构教程》与《DDD领域驱动设计架构教程》。

  • End –
    分享一套.NetCore从入门到精通视频教程
    点击下方公众号卡片,关注我
    回复“888”,免费领取

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/416772.html

(0)
联系我们
联系我们
分享本页
返回顶部