返回顶部
分享到

C#代码实现生成带Logo的二维码

C#教程 来源:互联网 作者:佚名 发布时间:2026-03-07 17:38:56 人浏览
摘要

在生成二维码时,您可能希望在其中加入自定义图片,例如公司的 Logo 或个人头像。本文将介绍如何使用Spire.Barcode for .NET库,通过C# 和 VB.NET以编程方式实现为二维码添加图片。 安装 Spire.Bar

在生成二维码时,您可能希望在其中加入自定义图片,例如公司的 Logo 或个人头像。本文将介绍如何使用 Spire.Barcode for .NET 库,通过 C# 和 VB.NET 以编程方式实现为二维码添加图片。

安装 Spire.Barcode for .NET

在开始之前,您需要将 Spire.Barcode for .NET 包中的 DLL 文件添加为 .NET 项目的引用。您可以通过以下两种方式获取这些 DLL 文件:

  • 从官网下载安装包,并将其中的 DLL 文件添加到项目引用中。
  • 通过 NuGet 直接安装并引用该库。

1

PM> Install-Package Spire.Barcode

注意:该功能需要商业许可证支持。如果您想进行测试,可以在本文末尾申请一个临时许可证。

在 C# 和 VB.NET 中生成带 Logo 的二维码

下面介绍生成带 Logo 二维码的基本步骤:

  • 创建 BarcodeSettings 对象。
  • 通过 BarcodeSettings.Type、BarcodeSettings.QRCodeECL 和 BarcodeSettings.Data 属性设置条码类型、纠错级别以及要编码的数据内容。
  • 使用 BarcodeSettings.QRCodeLogoImage 属性为二维码设置 Logo 图片。
  • 根据以上配置创建 BarCodeGenerator 对象。
  • 调用 BarCodeGenerator.GenerateImage() 方法生成二维码图像。
  • 使用 Image.Save() 方法保存生成的图片。

示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

using Spire.Barcode;

using Spire.License;

using System.Drawing;

 

namespace AddLogoToQR

{

    class Program

    {

        static void Main(string[] args)

        {

            // 加载许可证

            Spire.License.LicenseProvider.SetLicenseFileFullPath("license.elic.xml");

 

            // 创建 BarcodeSettings 对象

            BarcodeSettings settings = new BarcodeSettings();

 

            // 设置条码类型、纠错级别、数据等

            settings.Type = BarCodeType.QRCode;

            settings.QRCodeECL = QRCodeECL.M;

            settings.ShowText = false;

            settings.X = 2.5f;

            string data = "www.e-iceblue.com";

            settings.Data = data;

            settings.Data2D = data;

 

            // 设置二维码中嵌入的 Logo 图片

            settings.QRCodeLogoImage = Image.FromFile(@"C:\Users\Administrator\Desktop\logo.png");

 

            // 根据设置生成二维码图像

            BarCodeGenerator generator = new BarCodeGenerator(settings);

            Image image = generator.GenerateImage();

 

            // 保存生成的二维码图片

            image.Save("QR.png", System.Drawing.Imaging.ImageFormat.Png);

        }

    }

}

方法补充

下面小编为大家整理了一些其他C#生成二维码的方法,希望对大家有所帮助

1.C# 生成带Logo的二维码及生成二维码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

using ZXing;

using ZXing.QrCode;

/// <summary>

/// 生成二维码

/// </summary>

/// <param name="text">二维码内容</param>

/// <param name="width">宽度</param>

/// <param name="height">高度</param>

/// <returns></returns>

public static Bitmap GenQrCodePic(string text, int width, int height)

{

    BarcodeWriter writer = new BarcodeWriter();

    writer.Format = BarcodeFormat.QR_CODE;

    QrCodeEncodingOptions options = new QrCodeEncodingOptions()

    {

        DisableECI = true,//设置内容编码

        CharacterSet = "UTF-8",  //设置二维码的宽度和高度

        Width = width,

        Height = height,

        Margin = 1//设置二维码的边距,单位不是固定像素

    };

 

    writer.Options = options;

    Bitmap map = writer.Write(text);

    return map;

}

/// <summary>

/// 生成带Logo的二维码

/// </summary>

/// <param name="text">内容</param>

/// <param name="width">宽度</param>

/// <param name="height">高度</param>

public static Bitmap GenQrCodeLogoPic(string text, string logoPath, int width, int height)

{

    Bitmap logo = new Bitmap(logoPath);

    //计算插入图片的大小和位置

    int middleW = Math.Min((int)(width / 4), logo.Width);

    int middleH = Math.Min((int)(height / 4), logo.Height);

    int middleL = (width - middleW) / 2;

    int middleT = (height - middleH) / 2;

    ////构造二维码写码器

    Bitmap bmpimg = GenQrCodePic(text, width, height);

    using (Graphics g = Graphics.FromImage(bmpimg))

    {

        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

        g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

        g.DrawImage(bmpimg, 0, 0, width, height);

        //白底将二维码插入图片

        g.FillRectangle(Brushes.White, middleL, middleT, middleW, middleH);

        g.DrawImage(logo, middleL, middleT, middleW, middleH);

    }

    return bmpimg;

}

2.C#开发带logo的二维码生成器

以下是生成带有徽标图像的二维码的步骤:

  • 创建一个 BarcodeSettings 对象。
  • 使用 BarcodeSettings.Type、BarcodeSettings.QRCodeECL 和 BarcodeSetting.Data 属性设置条码类型、纠错级别和数据等。
  • 使用 BarcodeSettings.QRCodeLogoImage 属性设置 Logo 图像。
  • 根据设置创建一个 BarCodeGenerator 对象。
  • 使用 BarCodeGenerator.GenerateImage() 方法生成二维码图像。
  • 使用 Image.Save() 方法保存图像。

实现代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

using Spire.Barcode;

using Spire.License;

using System.Drawing;

  

namespace AddLogoToQR

{

    class Program

    {

        static void Main(string[] args)

        {

            //加载license

            Spire.License.LicenseProvider.SetLicenseFileFullPath("license.elic.xml");

  

            //创建一个BarcodeSettings对象

            BarcodeSettings settings = new BarcodeSettings();

  

            //设置条码类型、纠错级别、数据等

            settings.Type = BarCodeType.QRCode;

            settings.QRCodeECL = QRCodeECL.M;

            settings.ShowText = false;

            settings.X = 2.5f;

            string data = "www.e-iceblue.com";

            settings.Data = data;

            settings.Data2D = data;

  

            //设置logo图像

            settings.QRCodeLogoImage = Image.FromFile(@"C: \Users\Administrator\Desktop\logo.png");

  

            //根据设置生成二维码图像

            BarCodeGenerator generator = new BarCodeGenerator(settings);

            Image image = generator.GenerateImage();

            image.Save("QR.png", System.Drawing.Imaging.ImageFormat.Png);

        }

    }

}


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计