前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分享一个.net 生成二维码的方法

分享一个.net 生成二维码的方法

原创
作者头像
用户4831957
发布2023-04-13 14:34:00
7400
发布2023-04-13 14:34:00
举报
文章被收录于专栏:网站建设、网站制作专栏

最近项目中需要生成二维码,找了很多包,最好还是感觉QRCoder包最好用,下面发出来分享给大家。

1、首先nugut应用QRCoder包。

2、在工具层中创建QRCoderHelper.cs文件,内容如下:

代码语言:javascript
复制
/// <summary>
/// 依赖QRCoder
/// </summary>
public class QRCoderHelper
{
#region 普通二维码
/// <summary>
///
/// </summary>
/// <param name="url">存储内容</param>
/// <param name="pixel">像素大小</param>
/// <returns></returns>
public static Bitmap GetPTQRCode(string url, int pixel, string color = "#000000", string backColor = "#ffffff")
{
if (string.IsNullOrEmpty(url))
{
return null;
}
url = HttpUtility.UrlDecode(url);
QRCodeGenerator generator = new QRCodeGenerator();
QRCodeData codeData = generator.CreateQrCode(url, QRCodeGenerator.ECCLevel.M, true);
QRCoder.QRCode qrcode = new QRCoder.QRCode(codeData);
ColorConverter colorConverter = new ColorConverter();
Color darkColor;
Color lightColor;
if (string.IsNullOrEmpty(color) || !color.StartsWith("#"))
{
darkColor = Color.Black;
}
else
{
darkColor = (Color)colorConverter.ConvertFromString(color);
}
if (string.IsNullOrEmpty(backColor) || !backColor.StartsWith("#"))
{
lightColor = Color.White;
}
else
{
lightColor = (Color)colorConverter.ConvertFromString(backColor);
}
Bitmap qrImage = qrcode.GetGraphic(pixel, darkColor, lightColor, true);
//Bitmap qrImage = qrcode.GetGraphic(pixel, Color.Black, Color.White, null, 15, 6, true);
return qrImage;
}
#endregion
#region 带logo的二维码
/// <summary>
///
/// </summary>
/// <param name="url">存储内容</param>
/// <param name="pixel">像素大小</param>
/// <returns></returns>
public static Bitmap GetLogoQRCode(string url, string logoPath, int pixel,string color="#000000",string backColor ="#ffffff")
{
if (string.IsNullOrEmpty(url))
{
return null;
}
url = HttpUtility.UrlDecode(url);
QRCodeGenerator generator = new QRCodeGenerator();
QRCodeData codeData = generator.CreateQrCode(url, QRCodeGenerator.ECCLevel.M, true);
QRCoder.QRCode qrcode = new QRCoder.QRCode(codeData);
logoPath = IOHelper.MapPath(logoPath);
Bitmap icon = new Bitmap(logoPath);
ColorConverter colorConverter = new ColorConverter();
Color darkColor;
Color lightColor;
if (string.IsNullOrEmpty(color) || !color.StartsWith("#"))
{
darkColor = Color.Black;
}
else
{
darkColor = (Color)colorConverter.ConvertFromString(color);
}
if (string.IsNullOrEmpty(backColor) || !backColor.StartsWith("#"))
{
lightColor = Color.White;
}
else
{
lightColor = (Color)colorConverter.ConvertFromString(backColor);
}
Bitmap qrImage = qrcode.GetGraphic(pixel, darkColor, lightColor, icon, 15, 6, true);
#region 参数介绍
//GetGraphic方法参数介绍
//pixelsPerModule //生成二维码图片的像素大小 ,我这里设置的是5
//darkColor //暗色 一般设置为Color.Black 黑色
//lightColor //亮色 一般设置为Color.White 白色
//icon //二维码 水印图标 例如:Bitmap icon = new Bitmap(context.Server.MapPath("~/images/zs.png")); 默认为NULL ,加上这个二维码中间会显示一个图标
//iconSizePercent //水印图标的大小比例 ,可根据自己的喜好设置
//iconBorderWidth // 水印图标的边框
//drawQuietZones //静止区,位于二维码某一边的空白边界,用来阻止读者获取与正在浏览的二维码无关的信息 即是否绘画二维码的空白边框区域 默认为true
#endregion
return qrImage;
}
#endregion
}

这其中IOHelper.MapPath()作用是把相对路径转为实际的目录路径,大家可以自己封装,这类简单方法就不发出来了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档