.net Core 中生成二维码并带标题

.net Core 中生成二维码并带标题

生成二维码的组件有很多种,如:QrcodeNet,ZKWeb.Fork.QRCoder,QRCoder等

我选QRCoder,是因为小而易用、支持大并发生成请求、不依赖任何库和网络服务。

步骤1:

项目右击 管理NuGet程序包 浏览 找到 QRCoder 选择合适版本下载安装

步骤2(核心代码) :

var qrGenerator = new QRCodeGenerator();
var qrCodeData = qrGenerator.CreateQrCode("www.baidu.com", QRCodeGenerator.ECCLevel.Q);
var qrCode = new QRCode(qrCodeData);
var qrCodeImage = qrCode.GetGraphic(20, Color.Black, Color.White,null);
qrCodeImage.Save("二维码保存路径例如:C:\\QRCode.png");

以上就是生成二维码的核心代码

步骤3(带标题):

思路:

    在qrcode.GetGraphic()得到二维码后,新建一个更大的画布,然后把二维码打到新画片上,再在下面打上需要的标题即可,具体代码如下
var qrGenerator = new QRCodeGenerator();
var qrCodeData = qrGenerator.CreateQrCode("www.baidu.com", QRCodeGenerator.ECCLevel.Q);
var qrCode = new QRCode(qrCodeData);
var qrCodeImage = qrCode.GetGraphic(20, Color.Black, Color.White,null);
var bitmap = new Bitmap(1000, 400);
var g = Graphics.FromImage(bitmap);
var font = new Font("SimSun", 30, FontStyle.Regular);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.Clear(Color.White);
g.DrawImage(qrCodeImage, 0, 0, 400, 400);
var sbrush = new SolidBrush(Color.Black);
g.DrawString("_小森林_", font, sbrush, 400, 180);
g.Dispose();
var tempFilePath = Path.Combine("二维码保存路径例如:C:\\QRCode.png");
bitmap.Save(tempFilePath);

二维码和标题位置大小可自行调配。

GetGraphic方法参数说明
public Bitmap GetGraphic(int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)
int pixelsPerModule:生成二维码图片的像素大小
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值