MVC生成二维码和条形码

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ZXing;
using ZXing.Common;//一维码
using ZXing.QrCode;//二维码
using System.Drawing.Imaging;//图片保存
using System.Drawing;

namespace WebApplication8.Controllers
{
    public class DefaultController : Controller
    {
        // GET: Default
        public ActionResult Index()
        {
            return View();
        }
        /// <summary>
        /// 生成条形码
        /// </summary>
        /// <param name="Name"></param>
        /// <returns></returns>
        public string Code(string Name)
        {
            //设置条形码规格
            EncodingOptions encod = new EncodingOptions();
            //设置高
            encod.Height = 120;
            //设置宽
            encod.Width = 200;
            //生成条形码的图片并保存
            BarcodeWriter wr = new BarcodeWriter();
            //指定规格
            wr.Options = encod;
            //指定条形码规格为EAN_13
            wr.Format = BarcodeFormat.EAN_13;
            //生成图片
            Bitmap img = wr.Write(Name);
            //获取文件夹的绝对路径
            string filepath = Server.MapPath("/image/");
            //获取当前时间
            string datime = DateTime.Now.ToString("yyMMddHHmmss");
            //进行图片保存
            img.Save(filepath + datime + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            //返回生成一维码图片的路径
            return "/image/" + datime + ".jpg";
        }
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="Name"></param>
        /// <returns></returns>
        public string QRcode(string Name)
        {
            //设置二维码规格
            QrCodeEncodingOptions qr = new QrCodeEncodingOptions();
            //设置编码格式,否则会乱码
            qr.CharacterSet = "UTF-8";
            qr.Height = 200;
            qr.Width = 200;
            //设置二维码图片周围空白边距
            qr.Margin = 1;
            //生成条形码图片保存
            BarcodeWriter wr = new BarcodeWriter();
            //二维码
            wr.Format = BarcodeFormat.QR_CODE;
            wr.Options = qr;
            Bitmap bit = wr.Write(Name);

            string filepath = Server.MapPath("/image/");
            //获取当前时间
            string datime = DateTime.Now.ToString("yyMMddHHmmss");
            //进行图片保存
            bit.Save(filepath + datime + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            //返回生成一维码图片的路径
            return "/image/" + datime + ".jpg";
        }
    }
    }
复制代码

3.页面代码

复制代码
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div id="img1">
        @*实现图片的盒子*@

</div>
<p>
    显示文本<input type="text" id="text1" name="name1" value="" /> @*文本框*@
    <input type="button" onclick="qqq()" name="name11" value="一维码生成" />@*一维码生成按钮*@
    <input type="button" onclick="www()" name="name12" value="二维码生成" />@*二维码生成按钮*@
</p>
<script>
        function qqq() {
            var name1 = $("#text1").val();//获取文本框的值
            $.ajax({//进行Ajax 提交到控制器 (下面有控制器方法的图片)
                url: '/Default/yi?name=' + name1,//路径传参
                type: 'post',
                success: function (rese) {//收到返回的一维码图片地址
                    $("#imge1").remove();//清空盒子中图片
                    $("#img1").append("<img id='images' src=" + rese + " />");//在盒子中最加二维码图片显示
                }
            })

        }
        function www() {
            var name2 = $("#text1").val();
            $.ajax({
                url: '/Default/er?name=' + name2,
                type: 'post',

                success: function (rese) {
                    $("#imge1").remove();
                    $("#img1").append("<img id='images' src=" + rese + " />");
                }
            })
        }
</script>
</body>
</html>
posted @ 2020-01-07 10:19  彦至  阅读(242)  评论(0编辑  收藏  举报