[C#]二维码(QR Code)生成与解析

写在前面

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

一个例子

关于二维码的组件仍是很是多的,你能够使用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();
        }

浏览app

如何解析呢?编码

        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;
        }

解析结果spa

微信扫描结果code

总结

这里只是弄一个demo玩玩。二维码的用处不少,好比扫描登陆,扫描付款,扫描下载app等。。。大街上各类扫码,从这头扫到那头,能扫一堆东西。这也是扫货吧。。。blog

相关文章
相关标签/搜索