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
   */
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值