首先在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里生成之后就能生成二维码图片了