在C#中生成二维码是一项常见的任务,特别是在移动应用、网页或物联网(IoT)场景中。本实例将向您展示如何使用ZXing.Net库来实现这个功能。ZXing.Net库是一个开源项目,提供了多种条码和二维码的读取与生成。 我们需要通过NuGet包管理器安装ZXing.Net库。在Visual Studio中,打开包管理控制台并运行以下命令: ```shell Install-Package ZXing.Net ``` 接下来,我们将创建一个新的控制器,名为`StrController`,并添加一个`QRcode`方法来处理二维码生成。在这个方法中,我们首先初始化一个`BarcodeWriter`对象,并将其格式设置为`BarcodeFormat.QR_CODE`,以指定我们要生成的是二维码。接着,我们创建一个`QrCodeEncodingOptions`对象,用于配置二维码的属性,如字符集、尺寸和边距。 ```csharp public class StrController : Controller { public ActionResult Index() { return View(); } public string QRcode(string text, string width, string height) { BarcodeWriter writer = new BarcodeWriter(); writer.Format = BarcodeFormat.QR_CODE; QrCodeEncodingOptions options = new QrCodeEncodingOptions(); options.DisableECI = true; options.CharacterSet = "UTF-8"; options.Width = Convert.ToInt32(width); options.Height = Convert.ToInt32(height); options.Margin = 1; writer.Options = options; Bitmap map = writer.Write(text); // 保存二维码到指定路径 string filePath = GenerateFilePath(text); map.Save(filePath, ImageFormat.Png); map.Dispose(); return "二维码生成成功!"; } private string GenerateFilePath(string text) { string di = text + DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"; string path = Path.Combine("C:\\Users\\zhulin\\Desktop", di); return path; } } ``` 在`QRcode`方法中,我们使用`Write`方法将输入的文本转换为二维码图像,并将其保存到本地。这里,我们通过`GenerateFilePath`方法动态生成文件名,包含文本和时间戳,以防文件重名。注意,保存路径应根据实际需求进行调整。 为了在前端展示二维码,我们需要创建一个简单的HTML页面。在视图文件中(如`Index.cshtml`),我们可以添加表单元素来输入字符串、宽度和高度,然后通过AJAX请求调用`QRcode`方法: ```html <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <link href="~/Scripts/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" /> <script src="~/Scripts/jquery-3.3.1.min.js"></script> </head> <body> <div class="container"> <h2>生成二维码</h2> <form id="qrForm"> <div class="form-group"> <label for="text">输入字符串:</label> <input type="text" class="form-control" id="text" placeholder="请输入内容" required> </div> <div class="form-group"> <label for="width">宽度:</label> <input type="number" class="form-control" id="width" placeholder="请输入宽度" required> </div> <div class="form-group"> <label for="height">高度:</label> <input type="number" class="form-control" id="height" placeholder="请输入高度" required> </div> <button type="submit" class="btn btn-primary">生成</button> </form> <div id="result"></div> </div> <script> $("#qrForm").submit(function (e) { e.preventDefault(); var text = $("#text").val(); var width = $("#width").val(); var height = $("#height").val(); $.ajax({ url: '@Url.Action("QRcode", "Str")', data: { text: text, width: width, height: height }, type: 'POST', success: function (response) { $("#result").html(response); if (response === "二维码生成成功!") { alert("二维码已生成,请查看桌面"); } }, error: function () { alert("发生错误,无法生成二维码!"); } }); }); </script> </body> </html> ``` 这个页面包含了三个输入字段:字符串、宽度和高度,以及一个提交按钮。当用户点击提交按钮时,会发送一个AJAX请求到`QRcode`方法,然后将结果显示在`result` div中。如果二维码生成成功,还会弹出一个提示框告知用户。 至此,我们已经完成了C#根据字符串生成二维码的完整实例。用户可以在前端输入字符串和尺寸,点击生成按钮后,服务器将生成二维码并保存到指定位置,同时在页面上显示生成结果。这个实例对于理解和学习C#中的二维码生成非常有帮助,可以作为基础来扩展其他功能,例如在线预览生成的二维码,或者将二维码直接保存到服务器。
- 粉丝: 4
- 资源: 950
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 人工智能大作业五子棋弈棋系统python实现源代码+文档说明(满分项目)
- FPGA Verilog AD7606驱动代码,包含SPI模式读取和并行模式读取两种,代码注释详细
- s7-200和两台变频器modbus rtu通信程序采用西门子224xp,配mcgs触摸屏,变频器一台三菱D700,一台台达vf
- Cypher操作的,练手数据
- pscad仿真 采用pscad搭建220kv三相空载输电线路,仿真合空线,切空线过电压,仿真避雷器,合闸电阻法抑制合闸过电压,仿
- 人工智能导论大作业-基于CUDA & C++的CNN实现在MNIST上+源代码+文档说明
- 基于spring boot的简历系统.zip
- 三菱FX5U专用指令通讯三台E700变频器程序资料 硬件:三菱FX5U PLC一台,三菱E700或D700变频器,新的F和A系列
- 恒压供水全套图纸程序 西门子s7-200smart西门子触摸屏 1、一对一变频(一台变频带一台水泵,本系统四台主泵,一台辅泵)
- 基于Java-spring boot外卖点餐系统.zip