QRCoderHelper-二维码的操作工具类
项目演示地址:https://gitee.com/qq28069933146_admin/itextsharp_v416_qrcoder_simple(因为itextsharp_v416涉及敏感开源协议的原因项目已删除;虽然只是LGPL协议)
1、QRCoderHelper类
/**
*┌──────────────────────────────────────────────────────────────┐
*│ 描 述:二维码QRCoder的操作工具类
*│ 作 者:执笔小白
*│ 版 本:1.0
*│ 创建时间:2023-06-22 16:21:56
*└──────────────────────────────────────────────────────────────┘
*┌──────────────────────────────────────────────────────────────┐
*│ 命名空间: Util.QRCoderHelpers
*│ 类 名:QRCoderHelper
*└──────────────────────────────────────────────────────────────┘
*/
using System;
using System.IO;
using QRCoder;
using System.Drawing.Imaging;
namespace Itextsharp_v416_QRCoder_Simple
{
/// <summary>
/// QRCoder的操作工具类
/// </summary>
public class QRCoderHelper
{
/// <summary>
/// 生成二维码QRCode
/// </summary>
/// <param name="qrCodeDataStr">二维码数据</param>
/// <param name="eCCLevel">设置容错率;默认为Q</param>
/// <returns>返回QRCode对象</returns>
public static QRCode CreateQRCode(string qrCodeDataStr, QRCodeGenerator.ECCLevel eCCLevel = QRCodeGenerator.ECCLevel.Q)
{
// QRCodeGenerator:二维码生成器
// QRCodeData:二维码数据
// QRCode:二维码
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(qrCodeDataStr, eCCLevel); // 设置容错率;默认为Q
QRCode qrCode = new QRCode(qrCodeData);
return qrCode;
}
/// <summary>
/// 生成二维码QRCode - 自定义图片
/// </summary>
/// <param name="qrCodeDataStr">二维码数据</param>
/// <param name="eCCLevel">设置容错率;默认为Q</param>
/// <param name="pixelsPerModule">像素点大小</param>
/// <param name="darkColor">前景色</param>
/// <param name="lightColor">背景色</param>
/// <param name="icon">二维码中心图标</param>
/// <param name="iconSizePercent">二维码中心图标_图标尺寸</param>
/// <param name="iconBorderWidth">二维码中心图标_边框厚度</param>
/// <param name="drawQuietZones">是否有白边</param>
/// <param name="iconBackgroundColor">二维码中心图标_背景色</param>
/// <returns>返回Bitmap图片</returns>
public static Bitmap CreateQRCode(string qrCodeDataStr, QRCodeGenerator.ECCLevel eCCLevel,
int pixelsPerModule, Color darkColor, Color lightColor,
Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 0, bool drawQuietZones = true, Color? iconBackgroundColor = null)
{
// QRCodeGenerator:二维码生成器
// QRCodeData:二维码数据
// QRCode:二维码
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(qrCodeDataStr, eCCLevel); // 设置容错率;默认为Q
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(pixelsPerModule, darkColor, lightColor, icon, iconSizePercent, iconBorderWidth, drawQuietZones, iconBackgroundColor);
return qrCodeImage;
}
/// <summary>
/// 保存二维码QRCode到文件
/// </summary>
/// <param name="qrCode">二维码</param>
/// <param name="pixelsPerModule">像素大小</param>
/// <param name="imageFormat">图片格式</param>
/// <param name="path">保存路径</param>
/// <returns>返回QRCode对象</returns>
public static void SaveQRCode(QRCode qrCode, int pixelsPerModule, ImageFormat imageFormat, string path)
{
Bitmap qrCodeImage = qrCode.GetGraphic(pixelsPerModule);
qrCodeImage.Save(path, imageFormat);
}
/// <summary>
/// 保存二维码图片到文件
/// </summary>
/// <param name="qrCodeImg">二维码图片</param>
/// <param name="path">保存路径</param>
/// <param name="imageFormat">图片格式</param>
/// <returns>返回QRCode对象</returns>
public static void SaveQRCode(Bitmap qrCodeImg, string path, ImageFormat imageFormat)
{
qrCodeImg.Save(path, imageFormat);
}
}
}
本文来自博客园,作者:꧁执笔小白꧂,转载请注明原文链接:https://www.cnblogs.com/qq2806933146xiaobai/p/18178514
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下