zoukankan      html  css  js  c++  java
  • 二维码(QR Code)生成与解析

    二维码(QR Code)生成与解析

    写在前面

    经常在大街上听到扫码送什么什么,如果真闲着没事,从头扫到位,估计书包都装满了各种东西。各种扫各种送,太泛滥了。项目中从没接触过二维码的东东,最近要使用,就扒了扒网络,发现关于解析二维码的类库还是非常多的,这里就选择一个做一个demo,玩玩。

    一个例子

    关于二维码的组件还是非常多的,你可以使用nuget选择一款使用就可以了。

    生成二维码

    复制代码
            // GET: Home
            public ActionResult Index()
            {
                QRCodeEncoder endocder = new QRCodeEncoder();
                //二维码背景颜色
                endocder.QRCodeBackgroundColor = System.Drawing.Color.White;
                //二维码编码方式
                endocder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                //每个小方格的宽度
                endocder.QRCodeScale = 10;
                //二维码版本号
                endocder.QRCodeVersion = 5;
                //纠错等级
                endocder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
                var person = new { Id = 1, Name = "wolfy", Gender = 1, Age = 24 };
                //将json川做成二维码
                Bitmap bitmap = endocder.Encode(new JavaScriptSerializer().Serialize(person), System.Text.Encoding.UTF8);
                string strSaveDir = Request.MapPath("/QRcode/");
                if (!Directory.Exists(strSaveDir))
                {
                    Directory.CreateDirectory(strSaveDir);
                }
                string strSavePath = Path.Combine(strSaveDir, person.Name + ".png");
                if (!System.IO.File.Exists(strSavePath))
                {
                    bitmap.Save(strSavePath);
                }
                ViewBag.img = "/QRcode/" + person.Name + ".png";
                return View();
            }
    复制代码

    浏览

    如何解析呢?

    复制代码
            public string DeCoder()
            {
                string result = "";
                string strSaveDir = Request.MapPath("/QRcode/");
                if (!Directory.Exists(strSaveDir))
                {
                    Directory.CreateDirectory(strSaveDir);
                }
                string strSavePath = Path.Combine(strSaveDir, "wolfy.png");
                if (System.IO.File.Exists(strSavePath))
                {
                    QRCodeDecoder decoder = new QRCodeDecoder();
                    result = decoder.decode(new ThoughtWorks.QRCode.Codec.Data.QRCodeBitmapImage(new Bitmap(Image.FromFile(strSavePath))));
                }
    
                return result;
            }
    复制代码

    解析结果

    微信扫描结果

    总结

    这里只是弄一个demo玩玩。二维码的用处很多,比如扫描登录,扫描付款,扫描下载app等。。。大街上各种扫码,从这头扫到那头,能扫一堆东西。这也是扫货吧。。。

  • 相关阅读:
    剑指OFFER----面试题60. n个骰子的点数
    剑指OFFER----面试题59
    剑指OFFER----面试题59
    剑指OFFER----面试题58
    10.装饰器
    优秀.NET界面控件DevExpress v19.1.6全新来袭!新改进抢“鲜”看
    VS开发框架DevExtreme v19.1全解析!Windows资源管理器UX值得拥有
    Kendo UI for jQuery使用教程:方法和事件
    MyEclipse使用教程:导航代码(一)
    DevExpress ASP.NET Bootstrap v19.1版本亮点:Scheduler控件
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4803914.html
Copyright © 2011-2022 走看看