NET8下生成二维码
按网上搜索的总是多少有些问题,得总搜索好几次才能解决的,现把自己用过的可以生成的代码放上来,以备后用
2024年02月20日在 VS2022,NET8,MVC 项目上使用通过
引入NUGET:ZXing.Net.Bindings.ZKWeb.System.Drawing
控制器代码:
using Microsoft.AspNetCore.Mvc; using System.DrawingCore; using System.DrawingCore.Imaging; using ZXing; using ZXing.Common; using ZXing.QrCode; using ZXing.ZKWeb; namespace JCT.Web.Controllers { public class TestController : Controller { private Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnv; public TestController( Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnv) { this.hostingEnv = hostingEnv; } public ActionResult Index() { string text = "http://www.niunan.net"; int width = 300; int height = 300; int heig = width; if (width > height) { heig = height; width = height; } if (string.IsNullOrWhiteSpace(text)) { return null; } var w = new QRCodeWriter(); BitMatrix b = w.encode(text, BarcodeFormat.QR_CODE, width, heig); var zzb = new BarcodeWriter(); zzb.Options = new EncodingOptions() { Margin = 0, }; Bitmap b2 = zzb.Write(b); // 将Bitmap转换为字节数组 using (MemoryStream memoryStream = new MemoryStream()) { b2.Save(memoryStream, ImageFormat.Jpeg); byte[] imageBytes = memoryStream.ToArray(); // 设置HTTP响应的Content-Type Response.ContentType = "image/jpeg"; // 将字节数组写入输出流 return File(imageBytes, "image/jpeg"); } } } }