常常在大街上聽到掃碼送什麼什麼,若是真閒着沒事,從頭掃到位,估計書包都裝滿了各類東西。各類掃各類送,太氾濫了。項目中從沒接觸過二維碼的東東,最近要使用,就扒了扒網絡,發現關於解析二維碼的類庫仍是很是多的,這裏就選擇一個作一個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