C# 根据字符串生成二维码

1.先下载NuGet包(ZXing.Net)

2.新建控制器及编写后台代码

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ZXing;
using ZXing.QrCode;

namespace WebApplication1.Controllers
{
    public class StrController : Controller
    {
        // GET: Str
        public ActionResult Index()
        {
            return View();
        }
        /// <summary>
        /// 生成二维码方法
        /// </summary>
        /// <param name="text">输入的字符串</param>
        /// <param name="width">二维码宽度</param>
        /// <param name="height">二维码高度</param>
        /// <returns></returns>
        public string QRcode(string text, string width, string height)
        {
            string Response = "";
            try
            {
                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 di = text + DateTime.Now.ToString("yyyyMMddHHmmss") + ".png";
                //二维码会显示在桌面(你也想显示在桌面的话,要改一下路径)
                string path = Path.Combine("C:\\Users\\zhulin\\Desktop", di);
                map.Save(path, ImageFormat.Png);
                map.Dispose();
                Response = "二维码生成成功!";
            }
            catch (Exception)
            {
                Response = "二维码生成失败!";
            }
            return Response;
        }
    }
}

3.前端

@{
    Layout = null;
}

<!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>
    <script src="~/Scripts/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#btn").click(function () {
                var w = $("#wd").val();
                var h = $("#hg").val();
                var text = $("#tx").val();
                $.ajax({
                    url: "/Str/QRcode",
                    data: "text=" + text + "&width=" + w + "&height=" + h,
                    success: function (e) {
                        alert(e);
                    }
                });
            });
        })

    </script>
</head>
<body>

    <div style="margin-top:20px;margin-left:20px;">
        <p>高度:<input type="text" style="width:60px;height:32px;border:1px solid #66b1ff;margin-left:3px;" id="wd" /><span style="margin-left:10px;">宽度:</span><input type="text" style="width:60px;height:32px;border:1px solid #66b1ff;margin-left:3px;" id="hg" /></p>
        <input type="text" style="width:200px;height:32px;border:1px solid #66b1ff;" id="tx" placeholder="请输入字符串..." /><button type="button" class="btn btn-info" id="btn" style="margin-left:5px;margin-top:-1px;height:33px;">提交</button>
    </div>
</body>
</html>

4.效果:

 

posted @ 2019-07-30 18:42  江北、  阅读(4552)  评论(0编辑  收藏  举报