上一篇 下一篇 分享链接 返回 返回顶部

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

发布人:优库云 发布时间:2024-09-14 19:09 阅读量:248

ZXing.Net属于开源的二维码处理库,可以用于二维码的生成和识别,本文中优库云总结了关于如何使用ZXing.Net库和C#生成二维码、识别二维码及生成带logo的二维码。

先要在项目中引进ZXing.Net库。使用NuGet包管理器安装:

Install-Package ZXing.Net

生成一个简单的二维码很简单,如:

using System;

using ZXing;

using ZXing.Common;

using ZXing.QrCode;

public class QrCodeGenerator

{

    public static void Main()

    {

        var writer = new BarcodeWriter

        {

            Format = BarcodeFormat.QR_CODE,

            Options = new EncodingOptions

            {

                Height = 250,

                Width = 250,

                Margin = 1

            }

        };

        var result = writer.Write("https://www.example.com");

        var barcodeBitmap = new Bitmap(result);

        barcodeBitmap.Save("qrcode.png", ImageFormat.Png);

        Console.WriteLine("QR Code generated and saved as qrcode.png");

    }

}

识别二维码的方法也很简单,如:

using System;

using System.Drawing;

using ZXing;

public class QrCodeReader

{

    public static void Main()

    {

        var reader = new BarcodeReader();

        using (var barcodeBitmap = (Bitmap)Bitmap.FromFile("qrcode.png"))

        {

            var result = reader.Decode(barcodeBitmap);

            if (result != null)

            {

                Console.WriteLine($"Decoded QR Code text: {result.Text}");

            }

            else

            {

                Console.WriteLine("QR Code not recognized.");

            }

        }

    }

}

生成带logo的二维码,步骤是先生成二维码,再把logo图像叠加至二维码中心。示例:

using System;

using System.Drawing;

using ZXing;

using ZXing.Common;

using ZXing.QrCode;

public class QrCodeWithLogoGenerator

{

    public static void Main()

    {

        var writer = new BarcodeWriter

        {

            Format = BarcodeFormat.QR_CODE,

            Options = new EncodingOptions

            {

                Height = 250,

                Width = 250,

                Margin = 1

            }

        };

        var result = writer.Write("https://www.example.com");

        var barcodeBitmap = new Bitmap(result);

        // Load the logo

        var logo = (Bitmap)Bitmap.FromFile("logo.png");

        // Calculate the position for the logo

        var logoPosition = new Point((barcodeBitmap.Width - logo.Width) / 2, (barcodeBitmap.Height - logo.Height) / 2);

        // Combine the QR code and the logo

        using (var graphics = Graphics.FromImage(barcodeBitmap))

        {

            graphics.DrawImage(logo, logoPosition);

        }

        barcodeBitmap.Save("qrcode_with_logo.png", ImageFormat.Png);

        Console.WriteLine("QR Code with logo generated and saved as qrcode_with_logo.png");

    }

}

以上,就是使用C#和ZXing.Net库轻松生成和识别二维码的方法。再加上一些简单的图像处理,还可以进一步生成带logo的二维码。这些功能在实际操作中非常有用,比如品牌影响,对二维码的内容编译和解码等。如果您有任何问题欢迎向我们咨询!

目录结构
全文