欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

ASP.NET生成二维码实例有哪些

来源:本站整理 作者:佚名 时间:2016-12-27 TAG: 我要投稿

最近做项目遇到生成二维码的问题,发现网上用的最多的是ThoughtWorks.QRCode和QrCode.Net两种方式。访问官网看着例子写了两个Demo,使用过程中发现两个都挺好用的,ThoughtWorks.QRCode的功能更多一些,但是dll文件有6兆,QrCode.Net只有400多K,大家根据自己的需要选择吧。附上代码仅供参考。
并且提供VS2013写的一个Demo提供给大家免费下载。如有疑问欢迎交流。
ThoughtWorks.QRCode:
private void CreateQrcode(string nr)
  {
   Bitmap bt;
   string enCodeString = nr;
   QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
   bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
   string filename = DateTime.Now.ToString("yyyymmddhhmmss");
   string path = Server.MapPath("~/image/") + filename + ".jpg";
   Response.Write(path);
   bt.Save(path);
   this.Image1.ImageUrl = "~/image/" + filename + ".jpg";
  }
QrCode.Net:
protected void Button1_Click(object sender, EventArgs e)
  {
   using (var ms = new MemoryStream())
   {
    string stringtest = "中国inghttp://www.baidu.com/mvc.test?&";
    GetQRCode(stringtest, ms);
    Response.ContentType = "image/png?www.myhack58.com";
    Response.OutputStream.Write(ms.GetBuffer(), 0, (int)ms.Length);
    Image img = Image.FromStream(ms);
    string filename = DateTime.Now.ToString("yyyymmddhhmmss");
    string path = Server.MapPath("~/image/") + filename + ".png?www.myhack58.com";
    img.Save(path);
    Response.End();
   }
  }
  ///
  /// 获取二维码
  ///
  ///
待编码的字符
  ///
输出流
  ///True if the encoding succeeded, false if the content is empty or too large to fit in a QR code
  public static bool GetQRCode(string strContent, MemoryStream ms)
  {
   ErrorCorrectionLevel Ecl = ErrorCorrectionLevel.M; //误差校正水平
   string Content = strContent;//待编码内容
   QuietZoneModules QuietZones = QuietZoneModules.Two; //空白区域
   int ModuleSize = 12;//大小
   var encoder = new QrEncoder(Ecl);
   QrCode qr;
   if (encoder.TryEncode(Content, out qr))//对内容进行编码,并保存生成的矩阵
   {
    var render = new GraphicsRenderer(new FixedModuleSize(ModuleSize, QuietZones));
    render.WriteToStream(qr.Matrix, ImageFormat.png?www.myhack58.com, ms);
   }
   else
   {
    return false;
   }
   return true;
  }
 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载