using System; using System.Collections.Generic; using System.Drawing.Imaging; using System.Drawing; using System.IO; using QRCoder; namespace Common.Helper.Code { public class CodeHelper { private static Bitmap QcCode(string text) { var qrGenerator = new QRCodeGenerator(); var qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q); var qrCode = new QRCode(qrCodeData); return qrCode.GetGraphic(20, Color.Black, Color.White, new Bitmap(Path.Combine(Directory.GetCurrentDirectory(), "Image", "Logo.jpg"))); } private static Bitmap QcCodeTitle(string text,string title) { var qrCodeImage = QcCode(text); var bitmap = new Bitmap(500, 450); var g = Graphics.FromImage(bitmap); var font = new Font("SimSun", 24, FontStyle.Regular); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.Clear(Color.White); g.DrawImage(qrCodeImage, 50, 0, 400, 400); var solidBrush = new SolidBrush(Color.Black); g.DrawString(title, font, solidBrush, 190, 400); g.Dispose(); qrCodeImage.Dispose(); return bitmap; } /// /// 获取二维码 /// /// 文本 /// /// 生成文件地址 public static void QcCodeForFilePath(string text, string title, string filePath) { var map = QcCodeTitle(text,title); map.Save(filePath + title, ImageFormat.Png); map.Dispose(); } /// /// 获取带标题的二维码 /// /// /// /// public static string QcCodeBase64(string text,string title) { using var ms = new MemoryStream(); var map = QcCodeTitle(text,title); map.Save(ms, ImageFormat.Png); map.Dispose(); return Convert.ToBase64String(ms.GetBuffer()); } } }