转载

.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、源代码演示,相对复杂的生成方式:

界面效果:

.NET 二维码生成(ThoughtWorks.QRCode)

前端代码:

@{  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); } 

源代码演示下载: 点击下载

正文到此结束
Loading...