专栏首页技术开源分享QRCoder 二维码图片生成

QRCoder 二维码图片生成

参考地址

介绍

QRCoder是一个生成二维码的.Net library。此库体积小,无多余依赖项。使用方便,可以满足正常工作需要。

使用

Nuget 引用QRCoder

image.png

创建项目

生成一个core web 项目,在项目中进行QRCoder的Demo演示。

1、生成web项目

image.png

2、添加引用

image.png

3、新建上层QRCoder控制器 + 新建下层QRCider服务

image.png

4、编码 编写QRCoder的帮助服务类

    public class QRCoderService
    {
        #region  QRCode

        /// <summary>
        /// 生成jpeg 格式 二维码
        /// </summary>
        /// <param name="plainText">文本内容</param>
        /// <param name="pixel">像素</param>
        /// <returns></returns>
        public Bitmap GetQRCode(string plainText, int pixel)
        {
            var generator = new QRCodeGenerator();
            var qrCodeData = generator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);//纠错程度

            var qrCode = new QRCoder.QRCode(qrCodeData);
            var bitmap = qrCode.GetGraphic(pixel);
            return bitmap;
        }
        #endregion



        #region 在二维码中间加入头像
        /// <summary>
        /// 在二维码中间加入头像
        /// </summary>
        /// <param name="plainText">文本内容</param>
        /// <param name="pixel">像素</param>
        /// <param name="logoPath"></param>
        /// <returns></returns>
        public Bitmap GetQRCodeWithLogo(string plainText, int pixel, string logoPath)
        {
            var generator = new QRCodeGenerator();
            var qrCodeData = generator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
            var qrCode = new QRCoder.QRCode(qrCodeData);

            var bitmap = qrCode.GetGraphic(pixel, System.DrawingCore.Color.Black, System.DrawingCore.Color.White, (Bitmap)Image.FromFile(logoPath), 15, 6);
            return bitmap;
        }
        #endregion

        #region 生成svg格式的矢量二维码

        public string GetSvgQRCode(string plainText, int pixel)
        {
            var generator = new QRCodeGenerator();
            var qrCodeData = generator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
            var qrcode = new SvgQRCode(qrCodeData);
            return qrcode.GetGraphic(pixel);
        }
        #endregion

    }

在控制器进行生成图片操作

1、注入上文帮助类至容器中

      services.AddScoped<QRCoderService>();

2、控制器中描述方法

   public class QRCoderController : Controller
    {
        private IHostingEnvironment _hostingEnvironment;
        private readonly QRCoderService _qrCoderService;

        public QRCoderController(QRCoderService qrCoderService, IHostingEnvironment hostingEnvironment)
        {
            _qrCoderService = qrCoderService;
            _hostingEnvironment = hostingEnvironment;
        }


        #region 生成jpeg 格式 二维码

        public IActionResult GetJPEGQRPic()
        {
            //获取QRCoder Bitmap
            var bm = _qrCoderService.GetQRCode("hello world", 15);
            var ms = new MemoryStream();
            bm.Save(ms, ImageFormat.Jpeg);

            return File(ms.GetBuffer(), "image/jpeg");
        }
        #endregion
    }

生成带Icon的图片

        #region 生成带Icon二维码

        public IActionResult GetQRCodeWithLogo()
        {
            var logoPath = $"{_hostingEnvironment.WebRootPath}/icon.png";
            var bm = _qrCoderService.GetQRCodeWithLogo("hello world", 15, logoPath);
            var ms = new MemoryStream();
            bm.Save(ms, ImageFormat.Jpeg);

            return File(ms.GetBuffer(), "image/jpeg");
        }
        #endregion

生成svg图片

        #region 生成svg图片

        public IActionResult GetSvgQRPic()
        {
            var svgText = _qrCoderService.GetSvgQRCode("http://www.baidu.com", 15);
            string rootPath = _hostingEnvironment.WebRootPath;

            string svgName = $"{Guid.NewGuid().ToString()}.svg";
            string filePath = $"{rootPath}/{svgName}";
            System.IO.File.WriteAllText(filePath, svgText);
            var byts = System.IO.File.ReadAllBytes(filePath);
            return File(byts, "image/svg", svgName);
        }
        #endregion

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 生成二维码图片

    用户5927264
  • qrCode生成二维码图片

    QRCode.js 是一个用于生成二维码图片的插件。 1.文件脚本 var QRCode;!function(){function a(a){this.mode...

    用户1055830
  • .NET Core 图片操作在 Linux/Docker 下的坑

    .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image、Bitmap 等类型。对于图片的操作在我们开...

    晓晨
  • qrcode将生成的二维码转成图片格式

    薛定喵君
  • 文本纠错、图片变小、生成二维码

    由于最近空闲,所以趁着有空写了这个软件。考虑到很多时候网站编辑人员经常要处理图片大小问题,后端开发一般不允许上传太大的图片文件,而相机拍摄的图片...

    世玉
  • ZXing 生成、解析二维码图片的小示例

    概述 ZXing 是一个开源 Java 类库用于解析多种格式的 1D/2D 条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 ...

    静默虚空
  • liunx+python+django框架实现图片生成二维码

    Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下...

    测试小兵
  • python生成二维码(二)

    version: 一个整数,范围为1到40,表示二维码的大小(最小值是1,是个12×12的矩阵),如果想让程序自动生成,将值设置为 None 并使用 fit=T...

    李小白是一只喵
  • 二维码生成源码

    二维码生成源码 开发前准备: 第三方包:QRCode.jar 下载链接: QRCode.zip 开发工具:eclipse, myeclipse,idea 效...

    Java学习

扫码关注云+社区

领取腾讯云代金券