其实生成二维码的组件有很多种,如:QrcodeNet,ZKWeb.Fork.QRCoder,QRCoder等

我选QRCoder,是因为小而易用、支持大并发生成请求、不依赖任何库和网络服务。

既然是.net core 那当然要用依赖注入,通过构造函数注入到控制器。

软件版本

Asp.net Core:2.0

(开发时最新)

项目结构

Snai.QRCode.Api  Asp.net core 2.0 Api网站

项目实现

新建Snai.QRCode解决方案,在解决方案下新建一个名Snai.QRCode.Api Asp.net core 2.0 Api网站

在 依赖项 右击 管理NuGet程序包 浏览 找到 QRCoder 版本1.3.3 下载安装 

由于使用依赖注入,依赖抽象不依赖实现,所以要建一个实现二维码的接口

在项目添加 Common 文件夹,在文件夹添加 IQRCode 二维码接口,接口定义 GetQRCode 二维码方法,代码如下

在 Common 目录下添加 RaffQRCode 类,继承IQRCode接口实现GetQRCode类,代码如下

修改Startup.cs代码,注入RaffQRCode类到容器

代码如下:

在Controllers 下添加QRCodeController Api空的控制器,采用构造函数依赖,引入RaffQRCode类

添加GetQRCode(string url, int pixel)方法,加入HttpGet("/api/qrcode")路由地址,方法里使用_iQRCode.GetQRCode(url, pixel)生成二维码再输出

代码如下:

到此所有代码都已编写完成

启动运行项目,在浏览器打开 http://localhost:5000//api/qrcode?url=http://www.baidu.com&pixel=4 地址,得到url参数域名的二维码

/* GetGraphic方法参数说明
                public Bitmap GetGraphic(int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)
            * 
                int pixelsPerModule:生成二维码图片的像素大小 ,我这里设置的是5 
            * 
                Color darkColor:暗色   一般设置为Color.Black 黑色
            * 
                Color lightColor:亮色   一般设置为Color.White  白色
            * 
                Bitmap icon :二维码 水印图标 例如:Bitmap icon = new Bitmap(context.Server.MapPath("~/images/zs.png")); 默认为NULL ,加上这个二维码中间会显示一个图标
            * 
                int iconSizePercent: 水印图标的大小比例 ,可根据自己的喜好设置 
            * 
                int iconBorderWidth: 水印图标的边框
            * 
                bool drawQuietZones:静止区,位于二维码某一边的空白边界,用来阻止读者获取与正在浏览的二维码无关的信息 即是否绘画二维码的空白边框区域 默认为true

*/

源码访问地址:https://github.com/Liu-Alan/Snai.QRCode

原文地址: https://www.cnblogs.com/alan-lin/p/9193290.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

.net core 生成二维码相关推荐

  1. Asp.Net Core在线生成二维码

    前言: 原先用zxing Code写过基于Winfrom的批量生成二维码工具,以及单个生成二维码工具:批量生成二维码Gihub源代码 今天尝试用QRCoder 加 Asp.Net Core 写了一个在 ...

  2. 使用Java生成二维码图片(亲测)

    下面我来分享两种生成二维码图片的方法. 第一种,填入你扫描二维码要跳转的网址直接生成二维码 第一步:导入相关的包 1 <dependency> 2 <groupId>com.g ...

  3. java 生成二维码

    一步一步用 java 设计生成二维码 转至 http://blog.sina.com.cn/s/blog_5a6efa330102v1lb.html 在物联网的时代,二维码是个很重要的东西了,现在无论 ...

  4. Andoid开发中生成二维码

    2019独角兽企业重金招聘Python工程师标准>>> 第一步: 确定我们二维码的位置,即是在我们应用的哪个页面的哪个位置,简单讲就是用一个ImageView把二维码展示出来,我们就 ...

  5. Android 生成二维码,条形码,二维码添加logo

    zxing生成二维码 implementation 'com.google.zxing:core:3.3.1' implementation(name: 'zxing-1.0.1', ext: 'aa ...

  6. 【Java中级篇】使用zxing生成二维码

    一.pom.xml添加依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>cor ...

  7. java springMVC生成二维码

    Zxing是Google提供的工具,提供了二维码的生成与解析的方法,现在使用Java利用Zxing生成二维码 1),二维码的生成 将Zxing-core.jar 包加入到classpath下. 我的下 ...

  8. java使用zxing生成二维码

    zxing是Google提供的免费开源且操作十分方便的一个针对二维码的项目 代码也比较简单,这里我就直接把注释写上,直接根据自己的需要改动就行了. maven依赖: <dependencies& ...

  9. android 生成二维码_Java 生成二维码实战

    简介 ZXing 是一个开源 Java 类库用于解析多种格式的 1D/2D 条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码.其提供了多种平台下的客户端包括:J2ME. ...

最新文章

  1. linux 常用命令整理----链接文件
  2. 将森林转换为对应的二叉树,若在二叉树中,结点u时结点v的父结点的父结点,则在原来的森林中,u和v可能具有的关系是( )
  3. 文明重启服务器维护怎么卡进去,文明重启更新之后进不去,具体玩法介绍
  4. java需要先安装jdk_谢谢知乎。Java初学者首先下载 JDK 开发环境,然后再下 eclipse 对吗?那 tomcat是什么?还需要安装吗?...
  5. oracle 查看远程用户,oracle sysdba用户远程登录
  6. c语言数组题库答案,C语言数组百道练习题含答案.pdf
  7. C语言编程中 提取运行时间的函数,C语言中用于修改文件的存取时间的函数使用...
  8. poj2965--枚举专题 (算法巧妙)
  9. JVM监控及诊断工具GUI篇之Arthas(三):class、classloader相关指令
  10. 从网络启动恢复RG750Gr3
  11. 计算机网络规划设计实例,网络规划设计方案实例.doc
  12. 51中断编程c语言,有关51单片机中断的形式和C语言编程格式[精选5篇]
  13. conda 查看已有环境
  14. 初学者在VMware上搭建自己的CentOS8
  15. 程序员必备狂拽炫酷吊炸天的动效神器
  16. android异常相机处理,android 调用系统相机拍照的各种异常处理
  17. csharp基础练习题:产品和LCMS之间的差异总和【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练
  18. [置顶]FPGA 建制的任天国游戏机(NES)。
  19. SDU项目实训——同态加密技术学习
  20. C++:判断键盘输入的两个正整数是否为互质数

热门文章

  1. 对01背包的分析与理解(图文)
  2. Mybatis-Generator(MBG)教程与Idea的MBG插件
  3. 在SQLSERVER企业管理器中如何创建触发器
  4. .NET 7 预览版 2 已发布,NativeAOT 正式可用
  5. 如何摆脱「自我否定」状态
  6. .NET 6 预览版 7 发布--(最后一个预览版)
  7. 又到618,.NET 千万级秒杀架构到底有多牛
  8. 微软Build2021今日召开,共同期待VS2022+.NET6!
  9. 快速弄懂陌生领域是一项“赚钱”的能力
  10. Newbe.Claptrap 0.10.2 发布,Blazor 演示