当前位置:首页 > 技能相关 > C#与C++ > 正文内容

C# 使用QRCoder生成二维码

admin1年前 (2024-02-04)C#与C++3320 修订时间:2024-02-04 19:32:54

前言

该方法使用第三方类库QRCoder和QRCoder.code。上述两个类库应用于不同的NET项目,QRCoder应用于C# .NET frameWork框架,QRCoder.code应用于 .NET Code。

使用方法

方法一:

public interface IQRCodeMoons: ISingletonDependency
{
   Bitmap GetQRCode(string data, int pixel);
   byte[] GetQrCodeByteArray(string data, int pixel = 4);
}
/// <summary>
/// 二维码
/// </summary>
public class QRCodeMoons: IQRCodeMoons
{
   /// <summary>
   /// 生成二维码
   /// </summary>
   /// <param name="url">存储内容</param>
   /// <param name="pixel">像素大小</param>
   /// <returns></returns>
   public Bitmap GetQRCode(string data, int pixel)
   {
            QRCodeGenerator generator = new QRCodeGenerator();
            QRCodeData codeData = generator.CreateQrCode(data, QRCodeGenerator.ECCLevel.M, true);
            QRCoder.QRCode qrcode = new QRCoder.QRCode(codeData);
            Bitmap qrImage = qrcode.GetGraphic(pixel, Color.Black, Color.White, true);
            return qrImage;
    }

    /// <summary>
    /// 生成二维码并转成字节
    /// </summary>
    /// <param name="data"></param>
    /// <param name="pixel"></param>
    /// <returns></returns>
    public byte[] GetQrCodeByteArray(string data, int pixel = 4)
    {
            var bitmap = GetQRCode(data, pixel);
            using (MemoryStream ms = new MemoryStream())
            {
                bitmap.Save(ms, ImageFormat.Jpeg);
                return ms.GetBuffer();
            }
    }
}

直接把byte[] 字节返回给前端       前端通过img标签加载二维码

<img "data:image/png;base64,"+二维码字节数组 />

也可这样实现

<div [ngStyle]="{'background-image':'url(data:image/png;base64,'+data.qrCode+')'}"></div>
<img width="75px" src="data:image/png;base64,{{data.qrCode}}" />

方法二:

定义类方法

/// <summary>
/// 生成二维码Base64串
/// </summary>
/// <param name="url">生成二维码的内容</param>
/// <param name="pixel">二维码的大小</param>
/// <returns>返回Base64串</returns>
public static string GetQRCode(string url, int pixel)
{
     var imgType = Base64QRCode.ImageType.Jpeg;
     QRCodeGenerator qrGenerator = new QRCodeGenerator();
     QRCodeData qrCodeData = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);
     Base64QRCode qrCode = new Base64QRCode(qrCodeData);
     string qrCodeImageAsBase64 = qrCode.GetGraphic(pixel, Color.Black, Color.White, true, imgType);
     return qrCodeImageAsBase64;
}

NET code Web使用方式

<img src="data:image/png;base64,@ViewBag.imgaa" />

@ViewBag.imgaa是GetQRCode返回的Base64串。

 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=393

分享给朋友:

相关文章

Web API的创建3年前 (2022-11-07)
C# 第二篇 基础语法3年前 (2022-11-14)
C# 第三篇 流程控制3年前 (2022-11-15)
C# 第四篇 数组定义3年前 (2022-11-15)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。