.net core 生成二维码

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

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

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

软件版本

Asp.net Core:2.0

(开发时最新) 

项目结构

640?wx_fmt=png

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 二维码方法,代码如下

640?wx_fmt=png

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

640?wx_fmt=png

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

640?wx_fmt=png

代码如下:

640?wx_fmt=png

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

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

640?wx_fmt=png

代码如下:

640?wx_fmt=png

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

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

640?wx_fmt=png

 

/* 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

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小雨坐地铁

链接: 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 524288K,其他语言1048576K 64bit IO Format:%lld 题目描述 小雨所在的城市一共有 m 条地铁线,分别标号为 1 号线,2 号线,……&…

计蒜客 91 地铁 HDU 5263 平衡大师(二分+网络流)

先说PPT的思路 PPT的思路源于这句话: 对每条边 (u, v),连一条 (u, v) 容量为 1,费用为 1 的边。如果 流了表示删去这条边。 流过原图上的边表示删去这条边意味着什么呢? 令dif[u]u的出度-入度 如图,灰边表示原图上的…

开关灯(jzoj 3926)

开关灯 jzoj 3926 题目大意 有一个nl的灯网,你可以把按某一列的灯的按钮,然后这一列开的关,关的开,你也可以把某一行的灯和别的行的灯调换,问从当前状态到目标状态最少按多少个按钮 输入样例 3 3 2 01 11 10 11 0…

P4254-[JSOI2008]Blue Mary开公司【李超树】

正题 题目链接:https://www.luogu.com.cn/problem/P4254 题目大意 要求支持操作 插入一条直线。询问一个纵坐标最高的在直线上的点。 解题思路 李超树的模板题,大概就是标记永久化,对于一个位置midmidmid,我们看一下它与标记点在midmidmi…

asp.net core 外部认证多站点模式实现

PS:之前因为需要扩展了微信和QQ的认证,使得网站是可以使用QQ和微信直接登录。github 传送门 。然后有小伙伴问,能否让这个配置信息(appid, appsecret)按需改变,而不是在 ConfigureServices 里面…

牛客网【每日一题】4月22日 K-th Number

链接: 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 65536K,其他语言131072K 64bit IO Format:%lld 题目描述 Alice are given an array A[1…N] with N numbers. Now Alice want to build an array B by a parameter K…

纪中B组模拟赛总结(2020.2.09)

成绩 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3666lyflyflyf120120120303030000909090 总结 T1敲了个并查集,然后被卡了,正解是dfs,十分难懂,好在洛谷有原题(有一点差别),看…

P6030-[SDOI2012]走迷宫【高斯消元,tarjan,期望dp】

正题 题面链接:https://www.luogu.com.cn/problem/P6030 题目大意 nnn个点的一张有向图,求起点到终点的期望步数。保证每个强连通分量大小不超过100100100。 解题思路 显然如果是强连通分量那么显然需要用高斯消元。 先把强连通用tarjantarjantarjan缩起来&#…

如何让敏捷软着陆?

背景当前,敏捷已经成为了2018的热词,执行敏捷研发模式的项目多数都是从瀑布模型转型过来的,瀑布模型是一套根深蒂固的传统流程,如果硬着陆的话,很容易折翼。笔者在各类项目敏捷实施过程中,总结了一些接地气…

牛客网【每日一题】4月24日 子序列

链接: 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format:%lld 题目描述 小美有一个由n个元素组成的序列{a1,a2,a3,…,an},她想知道其中有多少个子序列{ap1,ap2,…,apm}…

[AGC031E] Snuke the Phantom Thief(网络流)

考虑枚举偷的珠宝的个数k,且假设它们按照坐标大小排好了序(x坐标排一次,y坐标排一次)。 那么可以将条件转化一下, 在珠宝按x坐标排好序时, x坐标大于等于aia_iai​的最多取bib_ibi​个可以转化为取的前k−…

YL杯超级篮球赛(jzoj 1325)

YL杯超级篮球赛 jzoj1325 题目大意 给n个点,每一个点都有一个值(aia_iai​),现在让你找出一个点,使∑i1n(∣X−xi∣∣Y−yi∣)ai\sum_{i1}^{n} (|X-x_i||Y-y_i|)a_i∑i1n​(∣X−xi​∣∣Y−yi​∣)ai​最小,输出此…

P6088-[JSOI2015]字符串树【可持久化Trie,LCA】

正题 题面链接:https://www.luogu.com.cn/problem/P6088 题目大意 nnn个点的一棵树,每条边上有一个字符串,求一条路径上有多少以询问字符串为前缀的字符串。 解题思路 建立一个可持久化TrieTrieTrie,然后每个点继承父亲插入字符串。 然后询…

牛妹的游戏

链接: 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld题目描述 UPD:数据保证不会有两条控制链控制的据点完全相同,也保证不会有某条控制链两端控制的据点相同…

.NET Core使用NLog通过Kafka实现日志收集

一、前言NET Core越来越受欢迎,因为它具有在多个平台上运行的原始.NET Framework的强大功能。Kafka正迅速成为软件行业的标准消息传递技术。这篇文章简单介绍了如何使用.NET(Core)和Kafka实现NLog的Target。在日常项目开发过程中,Java体系下Spring Boot …

[清华集训2017]无限之环(网络流)

很妙的一道题 对于每个格子,它合法与否,只跟它上下左右的相邻格子有关,所以可以想到黑白染色 (用 (i,j) 表示 i 行 j 列的格子,我把 (ij) %2 0 的格子染成白色,把(ij)%2 1 的格子染成黑色) …

【ST表】【单调队列】Window(jzoj 1326)

Window jzoj 1326 题目大意 给你一个序列a和一个数k,让你求a中所有长为k的子序列的最大值和最小值 输入样例 8 3 1 3 -1 -3 5 3 6 7输出样例 -1 -3 -3 -3 3 3 3 3 5 5 6 7数据范围 2020%: n\leqslant 500; 50%: n\leqslant 100000;20 100100%: n\l…

牛客网 【每日一题】4月23日题目精讲 边的染色

链接: 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 32768K,其他语言65536K 64bit IO Format: %lld题目描述 小团有一张n个点,m条边的无向图G,有些边上已经被标记了0或1,表示它的边权…

ASP.NET Core 中的 ORM 之 Dapper

Dapper简介Dapper是.NET的一款轻量级ORM工具(GitHub),也可称为简单对象映射器。在速度方面拥有微型ORM之王的称号。它是半自动的,也就是说实体类和SQL语句都要自己写,但它提供自动对象映射。是通过对IDbConnection接口…

P1446-[HNOI2008]Cards【Burnside引理,dp】

正题 题目链接:https://www.luogu.com.cn/problem/P1446 题目大意 三个颜色的一些东西排在一起,给mmm种置换,求本质不同的染色方案数。 解题思路 BurnsideBurnsideBurnside引理:置换集合GGG时本质不同的序列方案等于∑x∈Gc(x)∣G∣\frac{\…