• 大家好,在本章是如何通过.net/C#来生成二维码
  • 首先大家还是需要仔细阅读这篇文档有小细节就需要注意
  • 大家需要生成一些类,把我的方法复制进去,如果不想添加类的话,大家需要再主代码上更改引用信息找到我们所添加的方法
  • 不适用于零基础的朋友,适用于有点经验的懂一点代码的就行

1、首先我们新建一个自己的项目.net core 或其他项目新建好后新建一个控制器我们需要在里面写自己的代码,在控制器里面生成一个index页面如下是我的index页面。

上方是我的前台页面,里面主要的就是那个按钮,我呢是通过这个按钮把我的一张图片做成了二维码的内容,大家可以把自己想变成二维码的内容弄进去,这里我只弄功能。

上面那个是二维码结构图片

2、前台页面的代码是这样的,大家肯定会和我的不一样,也没关系,只要作用是一样的就行,大致就是需要一个生成二维码的按钮和点击后弹出二维码。前台代码大家尽量别复制,大家按照自己的写就行了。

//一个按钮用来触发
<script type="text/html" id="barList"><a class="layui-btn  layui-btn-xs" lay-event="live">图片二维码</a>
</script>//触发后弹出的二维码
<div class="QRCodeDownload" style="display:none;"><img class="QRCodeImg" id="QRCodeImg" style="display:block;width:250px;height:250px;margin:0 auto;margin-top:20px;" /><div id="ActivityTitle" style="text-align:center;"></div><div style="display:inline-block;width:160px;margin-left:15px;"><p style="display:inline-block;">二维码尺寸为:</p><input type="number" min="200" max="2000" class="layui-input" id="slideCon1" value="250" style="width:60px;display:inline-block;"></div><div id="slide1" class="slider1" style="width:60%;display:inline-block;margin-left:10px;"></div><input type="hidden" id="codeContent1" value="250">@*<input type="text" name="ActivityTitle" id="ActivityTitle" placeholder="" autocomplete="off" class="layui-input" style="width: 460px; margin-left: 15px">*@<input type="text" name="Activitylink" id="Activitylink" placeholder="" autocomplete="off" class="layui-input" style="width:460px; margin:10px auto 0;">
</div>

3、有了HTMl代码肯定也要有ajax请求的方法:主要有一下几个步骤,首先是监听一下页面是否点击了我们的二维码按钮,点击后应该请求的接口是哪个。下面是我的请求方法,大家也是不要复制,按照自己的前端代码写就行,我们主要是实现后台代码。我这个你们复制过去也不管用,所以看看逻辑就行。

//我们不管通过什么办法进行监听都可以我这里用的是表格所以我就监听表格里面的二维码按钮
case 'live'://我这里的这个src是二维码内容大家到时候根据自己的改就行var src =''if (data.WaysRegistration == 1) {src = data.ImgUrl} else {src = data.ImgUrlconsole.log(src)console.log(obj)}$("#Activitylink").val(src)$("#ActivityTitle").text('活动码-' + data.Name)$("#btn").attr("data-clipboard-text", src);showQRcode(src)break;//下面这个是我们点击按钮后请求接口的方法
function showQRcode(src) {layer.open({title: '扫码预览',area: ["600px", "600px"],type: 1,shade: false,content: $('.QRCodeDownload'),success: function () {var index = layer.load(1);$.ajax({//请求地址url: UrlBase + "UserQRCode/GetQRCode",type: "post",dataType: "JSON",data: {//传过去三个参数:宽、高、内容width: 250,height: 250,content: src},success: function (res) {$(".QRCodeImg").attr("src", res.Result);layer.close(index);}})},cancel: function (index, layero) {layer.closeAll();$(".QRCodeDownload").hide();}})}

上面就是关于JS监听并且请求接口的方法逻辑,主要就是监听点击按钮事件、点击后弹出二维码窗口事件、展示二维码。主要分为这三种;

4、我们准备好上方的前台代码后,切记:不要复制我的前台代码只给大家提供一个逻辑思路,大家自己写前台。接下来我们就要写后台代码非常简单无脑操作。大家首先需要新建几个类因为我们接下来会引用到里面的方法。

大家直接复制就好。死操作:

第一个类:Response类

//这个类里面只需要这一个方法就行    /// <summary>/// WEBAPI通用返回泛型基类/// </summary>/// <typeparam name="T"></typeparam>public class Response<T> : Response{/// <summary>/// 回传的结果/// </summary>public T Result { get; set; }}

第二个类:QRCodeHelper类,是我们的主要生成二维码的方法

//方法大家直接复制就好了,缺少引用就添加引用缺什么就引用什么private static byte[] BitmapToBytes(Bitmap bitmap){MemoryStream ms = new MemoryStream();bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);byte[] bytes = ms.GetBuffer();  //byte[]   bytes=   ms.ToArray(); 这两句都可以,至于区别么,下面有解释ms.Close();return bytes;}public static string QRCodeExecute(string str, int size){QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();//QRCodeGenerator.ECCLevel:纠错能力,Q级:约可纠错25%的数据码字QRCodeData qrCodeData = qrGenerator.CreateQrCode(str, QRCodeGenerator.ECCLevel.Q);QRCode qrcode = new QRCode(qrCodeData);Bitmap qrCodeImage = qrcode.GetGraphic(8, Color.Black, Color.White, null, 15, 6, false);/** 550为宽高* +60为上下左右各留出30的空白区域*/Bitmap newBM = new Bitmap(size + 30, size + 30);//新画布Graphics newGP = Graphics.FromImage(newBM);//清除所有背景色并指定背景颜色newGP.Clear(Color.White);// 插值算法的质量newGP.InterpolationMode = InterpolationMode.HighQualityBicubic;newGP.DrawImage(qrCodeImage, new Rectangle(15, 15, size, size), new Rectangle(0, 0, qrCodeImage.Width, qrCodeImage.Height), GraphicsUnit.Pixel);//var bytes = BitmapToBytes(newBM);using var ms = new MemoryStream();newBM.Save(ms, ImageFormat.Jpeg);var bytes = ms.GetBuffer();newGP.Dispose();newBM.Dispose();qrGenerator.Dispose();var StrBase64 = "data:image/png;base64," + Convert.ToBase64String(bytes);return StrBase64;//string fileName = $"{Guid.NewGuid()}.jpg";//return UploadHelp.Execute(bytes, fileName, UploadFileType.QrCode, UploadFunEnum.blob);}

第三个类:需要引用一个返回值的类:JsonHelper

//里面只需要有这两样东西,我们只需要用到这两个所提供的返回值类型public static JsonHelper Instance { get { return _jsonHelper; } }public string Serialize(object obj){return JsonConvert.SerializeObject(obj, new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });}

5、我们新建好上方的三个类之后,把方法也复制进去后,并且添加引用了,接下来操作就非常简单了,我们只需要写我们所请求的接口方法;一定要引用我们刚新创建的那三个类和别的引用。


//前面也说了,前台会给我们传过来三个参数,一个是二维码内容,一个是宽,一个是高[HttpPost]public string GetQRCode(string content, int width, int height){Response<string> Result = new Response<string>();var QRCode = QRCodeHelper.QRCodeExecute(content, size: width);if (!string.IsNullOrEmpty(QRCode)){Result.Result = QRCode;}else{Result.Code = -100;Result.Message = "下载失败";}return JsonHelper.Instance.Serialize(Result);}

6、这就是我们本次的生成二维码的方法了,大家有哪里不懂得可以下方留言问我,前台页面大家尽量不要复制粘贴,因为我们这个文章主要是讲述的后台代码,前台代码我只给大家提供思路和逻辑,只要请求不错,监听不错,就绝对能行

切记一定要添加引用啊!!还有自己起的类的名字一定要和调用时候名字统一啊!!!!否则肯定会报错的!!

.NET/C# 生成二维码相关推荐

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

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

  2. 在Ubuntu 16.04.5 LTS上使用python第三方库QRCode 6.0生成二维码实录

    简介 二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明.现随着智能手机的普及,已广 ...

  3. iOS 生成二维码/条形码

    级别:★★☆☆☆ 标签:「iOS CIFilter」「CIQRCodeGenerator」「CICode128BarcodeGenerator」「二维码加logo」 作者: Xs·H 审校: QiSh ...

  4. Zxing生成二维码思路和源码解析

    Zxing生成二维码思路和源码解析 本博文是一篇介绍google zxing包生成二维码的思路和它的源码的文章. 一.引入 如何调用zxing的代码生成一个二维码呢?主要的函数只有一个,如下所示: B ...

  5. vue 2.x项目 vue-qriously 生成二维码并下载、cliploard复制粘贴

    近日,重构项目某一老模块时,有一个功能是生成二维码并下载,还可以复制链接.列表每项都有二维码.下载二维码和复制链接和列表上方总的二维码. 老模块是用的qrocode中文文档,qrcode github ...

  6. java 生成二维码 QRCode、zxing 两种方式

    版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...

  7. Python使用QRCode模块生成二维码

    简介 python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode 库. 简单用法 import qrcode img = qrcode.make('hello, ...

  8. (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

    场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...

  9. 使用Python的库qrcode生成二维码

    现在有很多二维码的生成工具,在线的,或者安装的软件,都可以进行生成二维码.今天我用Python的qrcode库生成二维码.需要预先安装  Image 库 安装 用pip安装 # pip install ...

  10. 关于Unity调用摄像头扫描二维码与生成二维码的实现方法

    1.常用的生成二维码网址 https://cli.im/ 2.上官网下载二维码插件 http://zxingnet.codeplex.com/ 3.将下载的插件中zxing.unity.dll文件放入 ...

最新文章

  1. axure怎样24位bmp输出_平衡(非平衡)输入输出的无源变压器前级放大器
  2. 大学物理光学思维导图_思维导图走进新华百货现代物流
  3. linux下使用taskset设置进程cpu绑定不起作用
  4. OIDC在 ASP.NET Core中的应用
  5. 现代软件工程 第二章 【个人技术】 练习与讨论
  6. ASE光源 ASE噪声
  7. MySQL在windows的my-default.ini配置
  8. 学会使用Trace和Debug
  9. MagicDraw-状态机图
  10. 前端开发中PC端和移动端网站的区别
  11. halcon第七讲:基于训练学习的颜色检测
  12. 求最大公约数c语言实验心得,C语言编程实训报告(合集)
  13. python调用浏览器内核_python做个谷歌内核浏览器
  14. 年末了,是该总结一波了,冲鸭2021
  15. php版工行聚合支付和e支付
  16. bh1750c语言程序,BH1750FVI数字光线强度传感器 51单片机源程序
  17. OpenLayers 之 地图图层数据来源(ol.source)详解,ps图层混合模式详解
  18. Android中如何计算图片占用的实际内存大小?
  19. 把泛型传给泛型方法。
  20. 百度css3背景图代码,CSS3 实现花式背景图案

热门文章

  1. 云原生应用实践与未来趋势
  2. IE8 以下版本的浏览器的盒子模型有什么不一样的地方?
  3. 关于IE8浏览器下,split()和replace()函数的不兼容问题
  4. 数字签名标准(DSS)
  5. 一些版本管理常用的文档链接
  6. pubg体验服服务器维护,简单1招,教你快速获得《Pubg Mobile》体验服“邀请码”!...
  7. 路透社:韩国游戏巨头Nexon欲出售控股权 腾讯将扮演关键角色
  8. 绝望的主妇第八季/Desperate Housewives迅雷下载
  9. try{}里面有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
  10. 天才程序员法布里·贝拉德