[C#]二維碼(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等。。。大街上各種掃碼,從這頭掃到那頭,能掃一堆東西。這也是掃貨吧。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM