.NET 二维码生成(ThoughtWorks.QRCode)
引用ThoughtWorks.QRCode.dll (源代码里有)
1、简单二维码生成及解码代码:
//生成二维码方法一private void CreateCode_Simple(string nr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 8; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //System.Drawing.Image image = qrCodeEncoder.Encode("4408810820 深圳-广州 小江"); System.Drawing.Image image = qrCodeEncoder.Encode(nr); string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; string filepath = Server.MapPath(@"~\Upload") + "\\" + filename; System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); fs.Close(); image.Dispose(); //二维码解码 var codeDecoder = CodeDecoder(filepath); } /// <summary> /// 二维码解码 /// </summary> /// <param name="filePath">图片路径</param> /// <returns></returns> public string CodeDecoder(string filePath) { if (!System.IO.File.Exists(filePath)) return null; Bitmap myBitmap = new Bitmap(Image.FromFile(filePath)); QRCodeDecoder decoder = new QRCodeDecoder(); string decodedString = decoder.decode(new QRCodeBitmapImage(myBitmap)); return decodedString; }
2、源代码演示,相对复杂的生成方式:
界面效果:
前端代码:
@{Layout = null; }<!DOCTYPE html><html> <head><meta name="viewport" content="width=device-width" /> <title>Code</title> <script src="~/Scripts/jquery-1.10.2.js"></script> <script type="text/javascript"> $(function () { $("#createCode").click(function () { var strData = $("#strData").val(); var level = $("#level").val(); var encoding = $("#encoding").val(); var version = $("#version").val(); var scale = $("#scale").val(); $.post("/home/CreateCode_Choose", { strData: strData, level: level, qrEncoding: encoding, version: version, scale: scale }, function (data) { $("img").attr("src", data); }); }); }); </script> </head> <body> <div> <p>要生成的文字(支持中文):<input id="strData" type="text" value="123456 测试" /></p> <p> Encoding:<select id="encoding"> <option value="Byte">Byte</option> <option value="AlphaNumeric">AlphaNumeric</option> <option value="Numeric">Numeric</option> </select> </p> <p> Correction Level:<select id="level"> <option value="M">M</option> <option value="L">L</option> <option value="Q">Q</option> <option value="H">H</option> </select> </p> <p>Version:<input id="version" type="text" value="8" /></p> <p>scale:<input id="scale" type="text" value="4" /></p> <img src="" alt="" /> <input id="createCode" type="button" value="生成" /> </div> </body> </html>
后台:
/// 生成二维码/// </summary>/// <param name="strData">要生成的文字或者数字,支持中文。如: "4408810820 深圳-广州" 或者:4444444444</param> /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param> /// <param name="level">大小:L M Q H</param> /// <param name="version">版本:如 8</param> /// <param name="scale">比例:如 4</param> /// <returns></returns> public ActionResult CreateCode_Choose(string strData, string qrEncoding, string level, int version, int scale) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); string encoding = qrEncoding; switch (encoding) { case "Byte": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; case "AlphaNumeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; break; case "Numeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; break; default: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; } qrCodeEncoder.QRCodeScale = scale; qrCodeEncoder.QRCodeVersion = version; switch (level) { case "L": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; break; case "M": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; break; case "Q": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; break; default: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; break; } //文字生成图片 Image image = qrCodeEncoder.Encode(strData); string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; string filepath = Server.MapPath(@"~\Upload") + "\\" + filename; //如果文件夹不存在,则创建 //if (!Directory.Exists(filepath)) // Directory.CreateDirectory(filepath); System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); fs.Close(); image.Dispose(); return Content(@"/Upload/" + filename); }
源代码演示下载:点击下载
转载于:https://www.cnblogs.com/hnsongbiao/p/9145293.html
.NET 二维码生成(ThoughtWorks.QRCode)相关推荐
- Python二维码生成库qrcode示例
二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明.现随着智能手机的普及,已广泛应用 ...
- 【Java】二维码生成,QRcode
QRcode jar包下载地址:http://swetake.com/qrcode/java/qr_java.html 解析的工具可以参考 zxing 代码如下 package erweima; im ...
- VUE中:printJS使用,附带JsBarcode条码生成器,网页转图片html2canvas,base64上传保存处理,二维码生成库qrcode,二维码/条码扫描识别,domtoimage
官网 JsBarcode官网 JsBarcode的GitHub-WIKI 我的项目需求只需要将配置好的HTML与CSS样式传入进去就好,较为简单. 九个月后html2canvas出现线上问题 设置了跨 ...
- 二维码生成与解析(使用ThoughtWorks.QRCode)
二维码生成 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEnco ...
- QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)
QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 续前:QRCode二维码生成方案及其在带LOGO型二维码中的应 ...
- JS 生成二维码实现(qrcode.js)
qrcode.js源码地址: https://github.com/jeromeetienne/jquery-qrcode 使用 页面引入QRCode.js和JQuery.js <script ...
- jquery二维码生成插件jquery.qrcode.js在线生成二维码
一代巨匠金庸先生驾鹤西去,谢谢您的作品,陪我度过儿时的时光 –2018.10.31 一.场景再现 由于业务需求,经常会将访问链接分享给别人,方便其他客户访问我们的业务.在本周的需求中,我们需要根据地址 ...
- python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程
一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错&quo ...
- vscode中vue项目,QRCode二维码生成
昨天突然说让我写个简单的二维码生成页面 1.首先肯定要打开我们的项目,然后安装QRCode npm install qrcodejs2 2.然后新建一个文件(比如index.vue) 在文件最上面写上 ...
最新文章
- linux共享内存通信方式,linux下进程通信方式--共享内存
- 卫星导航技术的源起很有戏剧性
- 关于Django中,实现序列化的几种不同方法
- 面试官:你说你喜欢研究新技术,那么请说说你对 Blazor 的了解
- java 抛异常 jvm_邪恶的Java技巧使JVM忘记检查异常
- mysql mtop_mysqlmtop2.2运行出错
- 为什么Spark能成为最火的大数据计算引擎?它是怎样工作的?
- C#算法设计查找篇之01-顺序查找
- 数据结构(动态树):[国家集训队2012]tree(伍一鸣)
- 外媒:苹果正研发新的Apple Watch机型 显示屏和速度将升级
- 使用mysql命令还原student表_自用mysql自带命令实现数据库备份还原的方法
- selenium+java:获取列表中的值
- div居中以及div中的元素居中
- hdu2243 ac自动机
- centos7.x-firewalld防火墙常用命令收集
- 大一第一学期c语言考试题及答案,大一c语言试题及答案.doc
- 如何干净的卸载Mac版VMware Fusion
- 如何在iPhone或iPad上使用控制中心
- Markov Chain Monte Carlo 和 Gibbs Sampling算法
- 23届秋招美团内推推推!开始啦!!