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

 更新时间:2016年12月14日 14:24:49   作者:haitaoDoit  
本篇文章主要介绍了ASP.NET 生成二维码实例,使用了两种方法,包括ThoughtWorks.QRCode和QrCode.Net,具有一定的参考价值,有兴趣的可以了解一下。

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

    }

下面是下载地址:demo

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

相关文章

  • asp.net生成Excel并导出下载五种实现方法

    asp.net生成Excel并导出下载五种实现方法

    有关Excel下载的文章网上想必有很多,利用闲暇时间整理了一些有Excel下载方法的文章,接下来介绍五种实现Excel下载的方法,感兴趣的朋友可以了解下,或许对你学习Excel下载有所帮助
    2013-02-02
  • ASP.NET Core中实现用户登录验证的最低配置示例代码

    ASP.NET Core中实现用户登录验证的最低配置示例代码

    最近工作中遇到一个需求,需要在ASP.NET Core中来实现一个基础的身份认证,下面这篇文章主要给大家介绍了关于ASP.NET Core中实现用户登录验证的最低配置的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • asp.net快速连接access

    asp.net快速连接access

    网上有很多人在问asp.net连接access的问题,作为一个程序员,我觉得非常有必要分享一下我是怎么快速,简单连接access数据库的。本经验采用HTML代码结合JS模式,直接写在网页中,非常适合学习新手。
    2015-09-09
  • .Net Core实现第三方QQ扫码登录

    .Net Core实现第三方QQ扫码登录

    这篇文章介绍了.Net Core实现第三方QQ扫码登录的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • asp.net上传execl文件后,在页面上加载显示(示例代码)

    asp.net上传execl文件后,在页面上加载显示(示例代码)

    本篇文章主要是对asp.net上传execl文件后,在页面上加载显示(示例代码)进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-02-02
  • .NET Core授权失败自定义响应信息的操作方法

    .NET Core授权失败自定义响应信息的操作方法

    这篇文章主要介绍了.NET Core授权失败自定义响应信息的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • 如何合并多个 .NET 程序集

    如何合并多个 .NET 程序集

    这篇文章主要介绍了如何合并多个 .NET 程序集的方法,大家可能都听说过项 ILMerge, SmartAssembly, 等这样的工具.但是我想如果我们就能通过在编译时将所有这些源代码文件导入一个项目,来获得这些东西的一个完美组合.下面我们就来仔细探讨下。
    2015-03-03
  • 详解ASP.NET Core WebApi 返回统一格式参数

    详解ASP.NET Core WebApi 返回统一格式参数

    这篇文章主要介绍了详解ASP.NET Core WebApi 返回统一格式参数,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • ASP.NET Core设置Ocelot网关限流

    ASP.NET Core设置Ocelot网关限流

    这篇文章介绍了ASP.NET Core设置Ocelot网关限流的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 如何利用扩展方法来链式的对MVC 3中的页面进行验证

    如何利用扩展方法来链式的对MVC 3中的页面进行验证

    虽然扩展方法只是改变了我们写代码的方式,但是如果我们使用得当,可以给我们带来巨大的编码效率的提升接下来介绍通过扩展方法(链式方法)为MVC 3视图添加验证
    2013-01-01

最新评论