C# ZXing.Net生成二维码、识别二维码

一.ZXing.Net

也可使用Nuget包管理,添加如图:

说明:ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。现在也有了对应的.Net版本

二、生成二维码

将字符编码时可以指定字符格式;默认为ISO-8859-1英文字符集,但一般移动设备常用UTF-8字符集编码,

可以通过QrCodeEncodingOptions设置编码方式。

如果要生成其他zxing支持的条形码,只要修改BarcodeWriter.Format就可以了。

/// <summary>
/// 生成二维码,保存成图片
/// </summary>
static void Generate1(string text)
{
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    QrCodeEncodingOptions options = new QrCodeEncodingOptions();
    options.DisableECI = true;
    //设置内容编码
    options.CharacterSet = "UTF-8";
    //设置二维码的宽度和高度
    options.Width = 500;
    options.Height = 500;
    //设置二维码的边距,单位不是固定像素
    options.Margin = 1;
    writer.Options = options;

    Bitmap map = writer.Write(text);
    string filename = @"H:\桌面\截图\generate1.png";
    map.Save(filename, ImageFormat.Png);
    map.Dispose();
}
//生成二维码 
Generate1("https://www.baidu.com/");
Generate1("ionic是一个强大的混合式/hybrid HTML5移动开发框架,特点是使用标准的HTML、CSS和JavaScript,开发跨平台的应用 ,只需要几步就可以快速创建您的Ionic应用,创建应用从这里开始");

三、生成条形码

static void Generate2(string text)
{
    BarcodeWriter writer = new BarcodeWriter();
    //使用ITF 格式,不能被现在常用的支付宝、微信扫出来
    //如果想生成可识别的可以使用 CODE_128 格式
    //writer.Format = BarcodeFormat.ITF;
    writer.Format = BarcodeFormat.CODE_128;
    EncodingOptions options = new EncodingOptions()
    {
        Width = 150,
        Height =50,
        Margin=2
    };
    writer.Options = options;
    Bitmap map = writer.Write(text);
    string filename = @"H:\桌面\截图\generate2.png";
    map.Save(filename, ImageFormat.Png);
}
//生成条形码
Generate2("1234567890");
//错误说明
//只支持数字
Requested contents should only contain digits, but got 'i'
//只支持偶数个
The lenght of the input should be even
//最大长度80
Requested contents should be less than 80 digits long, but got 102

四、识别二维码/条形码

/// <summary>
/// 读取二维码
/// 读取失败,返回空字符串
/// </summary>
/// <param name="filename">指定二维码图片位置</param>
static string Read1(string filename)
{
    BarcodeReader reader = new BarcodeReader();
    reader.Options.CharacterSet = "UTF-8";
    Bitmap map = new Bitmap(filename);
    Result result = reader.Decode(map);
    return result == null ? "" : result.Text;
}
//1.读取二维码内容
//读取字母成功
//string filename = @"H:\桌面\截图\url.png";
//string filename = @"H:\桌面\截图\weibo.png";
//string filename = @"H:\桌面\截图\qrcode1.png";
//string filename = @"H:\桌面\截图\qrcode2.png";
//string filename = @"H:\桌面\截图\qrcode3.png";
//对于有logo的二维码只返回字符串内容
//string filename = @"H:\桌面\截图\qrcode4.png";
//string filename = @"H:\桌面\截图\qrcode5.png";
//string filename = @"H:\桌面\截图\qrcode6.png";
//识别条形码
string filename = @"H:\桌面\截图\generate2.png";
string result = Read1(filename);
Console.WriteLine(result);
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
是的,ZXing.NET 是一个功能强大的库,可以用于生成各种类型的条形码和二维码,包括 QRCode、Data Matrix、Aztec 等。要使用 ZXing.NET 生成二维码,您可以按照以下步骤进行操作: 1. 导入命名空间:在您的 C# 代码文件中,添加对 ZXing.NET 的命名空间引用: ```csharp using ZXing; using ZXing.Common; ``` 2. 创建一个 BarcodeWriter 对象:使用 BarcodeWriter 类来生成二维码。 ```csharp BarcodeWriter writer = new BarcodeWriter(); ``` 3. 配置生成器参数:您可以通过设置 Writer 的属性来配置生成器的参数,例如设置二维码尺寸、编码类型、边距等。 ```csharp writer.Format = BarcodeFormat.QR_CODE; // 设置生成的条形码类型为二维码 writer.Options = new EncodingOptions { Width = 200, // 设置二维码宽度 Height = 200, // 设置二维码高度 Margin = 10 // 设置二维码边距 }; ``` 4. 生成并保存二维码图像:使用 writer 对象的 `Write` 方法,传入要生成的文本作为参数,并将返回的 Bitmap 对象保存为图像文件或进行其他操作。 ```csharp Bitmap qrcodeImage = writer.Write("Hello, ZXing.NET!"); qrcodeImage.Save("qrcode.png"); // 保存为图像文件 ``` 在上述示例中,我们将字符串 "Hello, ZXing.NET!" 生成为一个名为 "qrcode.png" 的二维码图像文件。 这样,您就可以使用 ZXing.NET 生成自定义设置的二维码图像了。请记得根据您的需要,修改生成器的参数以及保存图像的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值