.net core 生成二维码

对于一次性使用的二维码,没有必要把二维码保存起来,直接把二维码流返回。

      [HttpGet]
        public ActionResult GetQrCode(string url)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                Bitmap bitmap = QRCoderHelper.GetQRCode(url);
                bitmap.Save(ms, ImageFormat.Jpeg);
                return File(ms.ToArray(), "image/png");
            }
        }

这边使用的Nuget包 是 ThoughtWorks.QRCode.Core  

public static Bitmap GetQRCode(string url)
        {
            QRCodeEncoder endocder = new QRCodeEncoder();
            //二维码背景颜色
            endocder.QRCodeBackgroundColor = System.Drawing.Color.White;
            //二维码编码方式
            endocder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            //每个小方格的宽度
            endocder.QRCodeScale = 5;
            //二维码版本号
            endocder.QRCodeVersion = 0;
            //纠错等级
            endocder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;

            //将json川做成二维码
            Bitmap bitmap = endocder.Encode(url, System.Text.Encoding.UTF8);

            return bitmap;
        }

部署到linux有个坑是:  会报错  Unable to load DLL 'gdiplus'

需要用root账号 执行  yum install libgdiplus-devel

原文地址:https://www.cnblogs.com/shiding/p/12984408.html