首先在NetGet包下载
<PackageReference Include="QRCoder" Version="1.3.3" />
注:别的版本我没试过 但是高版本有些没整出来
引用这两个
写入控制器里
using QRCoder;
using System.Drawing;
#region 普通二维码
/// <summary>
///
/// </summary>
/// <param name="url">存储内容</param>
/// <param name="pixel">像素大小</param>
/// <returns></returns>
public static Bitmap GetPTQRCode(string url, int pixel)
{
QRCodeGenerator generator = new QRCodeGenerator();
QRCodeData codeData = generator.CreateQrCode(url, QRCodeGenerator.ECCLevel.M, true);
QRCoder.QRCode qrcode = new QRCoder.QRCode(codeData);
Bitmap qrImage = qrcode.GetGraphic(pixel, Color.Black, Color.White, true);
return qrImage;
}
这个是生成二维码的方法
private readonly IWebHostEnvironment _webHostEnvironment; public MyController(IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
构造函数注入的应用程序的 Web 主机环境的信息
/// <summary>
/// 生成二维码
/// </summary>
/// <param name="url"></param>
/// <param name="pixel"></param>
/// <returns></returns>
[HttpGet("GetPTQRCode")]
public IActionResult GetPTQRCode(string url, int pixel = 5)
{
var bitmap = QRCoderHelper.GetPTQRCode(url, pixel);
var fileName = $"{webHostEnvironment.WebRootPath}/PackImg/{Guid.NewGuid().ToString("n")}.png";
bitmap.Save(fileName);保存路径
return Ok(fileName);
}
这个是在Controlle里面写的方法webHostEnvironment.WebRootPath是写的一个在WWWRoot里生成之后就能生成二维码图片了