引用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)相关推荐

  1. Python二维码生成库qrcode示例

    二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明.现随着智能手机的普及,已广泛应用 ...

  2. 【Java】二维码生成,QRcode

    QRcode jar包下载地址:http://swetake.com/qrcode/java/qr_java.html 解析的工具可以参考 zxing 代码如下 package erweima; im ...

  3. VUE中:printJS使用,附带JsBarcode条码生成器,网页转图片html2canvas,base64上传保存处理,二维码生成库qrcode,二维码/条码扫描识别,domtoimage

    官网 JsBarcode官网 JsBarcode的GitHub-WIKI 我的项目需求只需要将配置好的HTML与CSS样式传入进去就好,较为简单. 九个月后html2canvas出现线上问题 设置了跨 ...

  4. 二维码生成与解析(使用ThoughtWorks.QRCode)

    二维码生成 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEnco ...

  5. QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)

    QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 续前:QRCode二维码生成方案及其在带LOGO型二维码中的应 ...

  6. JS 生成二维码实现(qrcode.js)

    qrcode.js源码地址: https://github.com/jeromeetienne/jquery-qrcode 使用 页面引入QRCode.js和JQuery.js <script ...

  7. jquery二维码生成插件jquery.qrcode.js在线生成二维码

    一代巨匠金庸先生驾鹤西去,谢谢您的作品,陪我度过儿时的时光 –2018.10.31 一.场景再现 由于业务需求,经常会将访问链接分享给别人,方便其他客户访问我们的业务.在本周的需求中,我们需要根据地址 ...

  8. python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程

    一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错&quo ...

  9. vscode中vue项目,QRCode二维码生成

    昨天突然说让我写个简单的二维码生成页面 1.首先肯定要打开我们的项目,然后安装QRCode npm install qrcodejs2 2.然后新建一个文件(比如index.vue) 在文件最上面写上 ...

最新文章

  1. linux共享内存通信方式,linux下进程通信方式--共享内存
  2. 卫星导航技术的源起很有戏剧性
  3. 关于Django中,实现序列化的几种不同方法
  4. 面试官:你说你喜欢研究新技术,那么请说说你对 Blazor 的了解
  5. java 抛异常 jvm_邪恶的Java技巧使JVM忘记检查异常
  6. mysql mtop_mysqlmtop2.2运行出错
  7. 为什么Spark能成为最火的大数据计算引擎?它是怎样工作的?
  8. C#算法设计查找篇之01-顺序查找
  9. 数据结构(动态树):[国家集训队2012]tree(伍一鸣)
  10. 外媒:苹果正研发新的Apple Watch机型 显示屏和速度将升级
  11. 使用mysql命令还原student表_自用mysql自带命令实现数据库备份还原的方法
  12. selenium+java:获取列表中的值
  13. div居中以及div中的元素居中
  14. hdu2243 ac自动机
  15. centos7.x-firewalld防火墙常用命令收集
  16. 大一第一学期c语言考试题及答案,大一c语言试题及答案.doc
  17. 如何干净的卸载Mac版VMware Fusion
  18. 如何在iPhone或iPad上使用控制中心
  19. Markov Chain Monte Carlo 和 Gibbs Sampling算法
  20. 23届秋招美团内推推推!开始啦!!

热门文章

  1. 任意阶幻方(魔方矩阵)C语言实现
  2. 搭建wordpress开发环境
  3. [转载]使用Vitamio打造自己的Android万能播放器(7)——在线播放(下载视频)...
  4. Rust核心团队前成员Brian Anderson加入PingCAP
  5. Oracle PL/SQL之LOOP循环控制语句
  6. 安装iproute2
  7. 在Atom中运行脚本
  8. MyEclipse 深色主题
  9. 开放课程管理系统(Moodle)的介绍(转)
  10. Flask爱家租房--房屋管理(获取房东发布的房源信息条目)