写在前面
经常在大街上听到扫码送什么什么,如果真闲着没事,从头扫到位,估计书包都装满了各种东西。各种扫各种送,太泛滥了。项目中从没接触过二维码的东东,最近要使用,就扒了扒网络,发现关于解析二维码的类库还是非常多的,这里就选择一个做一个demo,玩玩。
一个例子
关于二维码的组件还是非常多的,你可以使用nuget选择一款使用就可以了。
生成二维码
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();
}
如何解析呢?
{ 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等。。。大街上各种扫码,从这头扫到那头,能扫一堆东西。这也是扫货吧。。。
點擊查看更多內(nèi)容
1人點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦