之前 几篇有讲过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属性,就是一个二维码图片了。