C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#生成带Logo二维码

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

作者:2501_93070778

在生成二维码时,您可能希望在其中加入自定义图片,本文将介绍如何使用 Spire.Barcode for .NET 库,通过 C# 和 VB.NET 以编程方式实现为二维码添加图片,感兴趣的小伙伴可以了解下

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

安装 Spire.Barcode for .NET

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

PM> Install-Package Spire.Barcode

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

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

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

示例代码如下:

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的二维码及生成二维码

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的二维码生成器

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

实现代码:

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);
        }
    }
}

到此这篇关于C#代码实现生成带Logo的二维码的文章就介绍到这了,更多相关C#生成带Logo二维码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文