条形码与二维码案例(MVC)

一:界面
在这里插入图片描述
二:代码

前台:

@{
Layout = null;
}

<!DOCTYPE html>

<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
    @using (Html.BeginForm())
    {
        <h2>条形码与二维码生成工具</h2>
        <input id="Text1" type="text" name="text" />
        <br /><br />
        <input id="Button1" type="button"  value="生成条形码" onclick="fun1()" />
        <input id="Button1" type="button" value="生成二维码" onclick="fun()" />
        <br /><br />            
    }
    <div id="y1">

    </div>
    <div id="y2">

    </div>
</div>
后台:
  public class InforController : Controller
{
    // GET: Infor
    //二维码
    [HttpPost]
    public int Index1(string text)
    {            
        //实例化二维码对象,参数为erorCorrectionLevel(误差校正水平)
        QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
        QrCode qrCode = new QrCode();
        //设置二维码中的内容,并对内容进行编码,生成的矩阵
        qrEncoder.TryEncode(text, out qrCode);
        //初始化渲染器 默认画笔将是黑色和白色,参数:Size
        var renderer = new GraphicsRenderer(
            //FixedModuleSize是用于渲染具有固定模块像素大小的QrCode的策略。参数:        moduleSize:像素大小,silentZoneModules:空白区域的数量
            new FixedModuleSize(12, QuietZoneModules.Two));
        //存储流
        MemoryStream ms = new MemoryStream();
        renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
        string buffer = Convert.ToBase64String(ms.GetBuffer());
        var imageBit = new Bitmap(ms);
        var image = new Bitmap(imageBit, new Size(new Point(200, 200)));//设置图片像素
        var fileName = Path.Combine(Server.MapPath("~/AAA"), "qrcode.png");
        image.Save(fileName, ImageFormat.Png);//保存生成的二维码图片
        return DateTime.Now.Millisecond;
    }
    //一维码
    [HttpPost]
    public int Index(string text)
    {
        //Random r = new Random();
        //string text = (r.Next() * 100000000).ToString();
        BarcodeWriter writer = new BarcodeWriter();
        //使用ITF 格式,不能被现在常用的支付宝、微信扫出来
        //writer.Format = BarcodeFormat.ITF;
        //如果想生成可识别的可以使用 CODE_128 格式
        writer.Format = BarcodeFormat.CODE_128;
        //图片大小
        EncodingOptions options = new EncodingOptions()
        {
            Width = 500,
            Height = 150,
            Margin = 2
        };
        //选项
        writer.Options = options;
        Bitmap map = writer.Write(text);
        var fileName = Path.Combine(Server.MapPath("~/AAA"), "barcode.png");
        map.Save(fileName, ImageFormat.Png);
        return DateTime.Now.Millisecond;
    }
    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }
}

三:结果
在这里插入图片描述
四:引用的空间名称

using ZXing;
using ZXing.Common;
using ZXing.QrCode;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
using Gma.QrCodeNet.Encoding;
using Gma.QrCodeNet.Encoding.Windows.Render;

五:需要创建的文件夹AAA
在这里插入图片描述

希望可以帮助到你O(∩_∩)O~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值