转载

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

写在前面

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

一个例子

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

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

生成二维码

// 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(); } 

浏览

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

如何解析呢?

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

解析结果

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

微信扫描结果

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

总结

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

正文到此结束
Loading...