zoukankan      html  css  js  c++  java
  • C# 生成二维码 QRCoder

    最近项目上有个需求,需要将某个文件的下载地址生成二维码,并展示到网页上.

    目前网上生成二维码的方法有好几种,本文将介绍【QRCoder】生成二维码的方式

    一、首先通过VS中的【NUGET】下载并引用QRCoder.dll

      使用VS打开项目,项目->右键->管理Nuget程序包,然后选择联机,在输入框中输入QRCoder,如下图所示:

    二、编写生成二维码代码,并返回至页面

       1、WebFrom (项目框架)

       2、功能场景:客户端浏览器使用jQuery.ajax 请求服务端返回二维码,服务端通过一般处理程序Handler.ashx 处理客户端请求并返回二维码至客户端

    // 生成二维码的内容
    string strCode = "http://www.walys.com";
    QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
    QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.Q);
    QRCode qrcode = new QRCode(qrCodeData);
    
    // qrcode.GetGraphic 方法可参考最下发“补充说明”
    Bitmap qrCodeImage = qrcode.GetGraphic(5,Color.Black,Color.White,null,15,6,false); 
    MemoryStream ms = new MemoryStream();
    qrCodeImage.Save(ms, ImageFormat.Jpeg);
    
    // 如果想保存图片 可使用  qrCodeImage.Save(filePath);
    
    // 响应类型
    context.Response.ContentType = "image/Jpeg";
    //输出字符流
    context.Response.BinaryWrite(ms.ToArray());

    以上为QRCoder生成二维码的核心代码

    补充说明:QRCode.GetGraphic方法参数说明 

    Bitmap qrCodeImage = qrcode.GetGraphic(5,Color.Black,Color.White,null,15,6,false); 
     /* GetGraphic方法参数说明
                     public Bitmap GetGraphic(int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)
                 * 
                     int pixelsPerModule:生成二维码图片的像素大小 ,我这里设置的是5 
                 * 
                     Color darkColor:暗色   一般设置为Color.Black 黑色
                 * 
                     Color lightColor:亮色   一般设置为Color.White  白色
                 * 
                     Bitmap icon :二维码 水印图标 例如:Bitmap icon = new Bitmap(context.Server.MapPath("~/images/zs.png")); 默认为NULL ,加上这个二维码中间会显示一个图标
                 * 
                     int iconSizePercent: 水印图标的大小比例 ,可根据自己的喜好设置 
                 * 
                     int iconBorderWidth: 水印图标的边框
                 * 
                     bool drawQuietZones:静止区,位于二维码某一边的空白边界,用来阻止读者获取与正在浏览的二维码无关的信息 即是否绘画二维码的空白边框区域 默认为true
       */
  • 相关阅读:
    [POJ3111]K Best(分数规划, 二分)
    [Python]实现简单决策树
    HDU 1269.迷宫城堡-Tarjan or 双向DFS
    HDU 2586.How far away ?-在线LCA(ST)-代码很认真的写了注释(捞到变形)
    HDU 5727.Necklace-二分图匹配匈牙利
    ZOJ 3593.One Person Game-扩展欧几里得(exgcd)
    牛客网 牛客小白月赛2 H.武-最短路(Dijkstra)
    牛客网 牛客小白月赛2 G.文
    牛客网 牛客小白月赛2 E.是是非非-尼姆博奕
    牛客网 牛客小白月赛2 D.虚虚实实-无向图判欧拉路径
  • 原文地址:https://www.cnblogs.com/wlays/p/7994393.html
Copyright © 2011-2022 走看看