为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
C#

写在前面

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

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消