.net如何快速将文字生成二维码

49 阅读1分钟

之前在用.NET开发项目的时候,经常会用到将文字转为我二维码图片。比如url地址,单据号。 之前我都是自己写的方法,生成二维码。

public static string CreateQRCode(string content, int moduleSize = 9)
        {

            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
            QrCode qrCode = qrEncoder.Encode(content);

            GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(moduleSize, QuietZoneModules.Two), Brushes.Black, Brushes.White);

            DrawingSize dSize = render.SizeCalculator.GetSize(qrCode.Matrix.Width);
            Bitmap map = new Bitmap(dSize.CodeWidth, dSize.CodeWidth);
            Graphics g = Graphics.FromImage(map);
            render.Draw(g, qrCode.Matrix);
            string base64Str = "";
            using (MemoryStream ms1 = new MemoryStream())
            {
                map.Save(ms1, System.Drawing.Imaging.ImageFormat.Jpeg);
                byte[] arr1 = new byte[ms1.Length];
                ms1.Position = 0;
                ms1.Read(arr1, 0, (int)ms1.Length);
                ms1.Close();
                base64Str = Convert.ToBase64String(arr1);

            }
            return base64Str;
        }

最近发现其实没必要那么麻烦,直接在NuGet中安装QrCode,然后直接使用就行了,一行代码就可以搞定。

QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, (QRCodeGenerator.ECCLevel)eccLevel);
            Base64QRCode qrCode = new Base64QRCode(qrCodeData);
            string base64QrCode = qrCode.GetGraphic(2);
            return base64QrCode;

而且生成出来的二维码质量非常好,扫码效果很好。