当前位置: 移动技术网 > IT编程>开发语言>.net > 详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)

详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)

2017年12月12日  | 移动技术网IT编程  | 我要评论

公主岭市邮编,31省市区GDP,马蓉以牙还牙无情没错

最近做项目遇到生成二维码的问题,发现网上用的最多的是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";

        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";

        img.save(path);

        response.end();

      } 
    }

    /// <summary>

    /// 获取二维码

    /// </summary>

    /// <param name="strcontent">待编码的字符</param>

    /// <param name="ms">输出流</param>

    ///<returns>true if the encoding succeeded, false if the content is empty or too large to fit in a qr code</returns>

    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, ms);

      }

      else

      {

        return false;

      }

      return true;

    }

下面是下载地址:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网