C# 后台代码生成 “二维码”

时间:2022-11-17 07:25:45

之前  几篇有讲过js脚本生成二维码。

但是有时候脚本我们 不能用,  需要生成二维码,这时候怎么办呢?

没关系, 下面来看看  代码生成二维码:

 

第一个方法:生成二维码 位图。

      link参数 为扫描二维码跳转的链接

      Bitmp  返回的是Bitmap位图
public static Bitmap GetQRCodeBmp(string link)
{
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
qrCodeEncoder.QRCodeScale = 4;
qrCodeEncoder.QRCodeVersion = 0;
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
Bitmap bmp = qrCodeEncoder.Encode(link);
return bmp;
}

 

上面的方返回的是 一个Bitmap (位图),如果你能用这个返回的 “位图 ” 在页面上显示二维码就不需要 转为src了。

我试了一下,没弄出来。所以我就把这个Bitmap 转为 base64位的src 图片地址了。

方法:

参数就是需要一个 Bitmap类型,返回的是base64位的字符串

public static string ImgToBase64String(Bitmap bmp)
{
  try
  {
    MemoryStream ms = new MemoryStream();
    bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
    byte[] arr = new byte[ms.Length];
    ms.Position = 0;
    ms.Read(arr, 0, (int)ms.Length);
    ms.Close();
    return Convert.ToBase64String(arr);
  }
  catch (Exception ex)
  {
    return null;
  }
}

 

直接调用这两个方法,就行了:

   string str= ImgToBase64String(GetQRCodeBmp("www.baidu.com"));  

把这个返回的  给img标签的src属性,就是一个二维码图片了。