.net8.0_webapi 生成二维码

文章目录

一、思路

环境:

1、内容生成二维码图片

2、保存到wwwroot为png格式

3、返回存储路径保存到数据库

4、前端读取显示

二、实现

1、Program.cs

csharp 复制代码
//配置静态文件路径
app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")),
});

2、二维码辅助类QrCodeHelper.cs

csharp 复制代码
using QRCoder.Core;
using System.Drawing;
using System.Drawing.Imaging;
namespace Common
{
    /// <summary>
    /// 二维码生成
    /// </summary>
    public class QrCodeHelper
    {
        /// <summary>
        /// 生成二维码并保存到指定路径
        /// </summary>
        public String Create(string content, int size = 20)
        {
            string uploadPath = "";
            string filename = DateTime.Now.ToString("HHssmm") + ".png";
            //保存路径
            uploadPath = $"wwwroot\\upload\\{DateTime.Now.ToString("yyMMdd")}\\";
            if (!Directory.Exists(uploadPath))
                Directory.CreateDirectory(uploadPath);
            // 创建QRCodeGenerator实例
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            // 生成二维码数据,ECCLevel.Q表示纠错级别(可选Q/L/M/H)
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(content, QRCodeGenerator.ECCLevel.Q);
            // 创建二维码图像
            QRCode qrCode = new QRCode(qrCodeData);
            // 获取Bitmap对象,参数:像素大小、前景色、背景色
            Bitmap qrCodeImage = qrCode.GetGraphic(size, Color.Black, Color.White, false);

            // 保存到指定路径(默认PNG格式)
            qrCodeImage.Save(uploadPath + filename, ImageFormat.Png);

            // 释放资源(避免内存泄漏)
            qrCodeImage.Dispose();
            //返回读取路径
            return $"/upload/{DateTime.Now.ToString("yyMMdd")}/"+filename; ;

        }
    }
}
/*
// 使用示例
  QrCodeHelper cd = new QrCodeHelper();
  m.qrcodeSrc = cd.Create("https://www.example.com");
// 支持:需要nuget  QRCoder.Core包
*/

三、效果

保存后:


读出的路径加上api前缀就OK

相关推荐
焚 城4 小时前
.NET 程序自动更新的回忆总结
.net
云草桑5 小时前
.net AI MCP 入门 适用于模型上下文协议的 C# SDK 简介(MCP)
ai·c#·.net·mcp
CsharpDev-奶豆哥14 小时前
ASP.NET中for和foreach使用指南
windows·microsoft·c#·asp.net·.net
weixin_456904271 天前
C# 串口通信完整教程 (.NET Framework 4.0)
网络·c#·.net
追逐时光者2 天前
C#/.NET/.NET Core技术前沿周刊 | 第 57 期(2025年10.1-10.12)
后端·.net
INCerry2 天前
.NET周刊【9月第4期 2025-09-28】
.net
曹振华2 天前
.net 6 signalr
.net·signalr
许泽宇的技术分享2 天前
从零到一:基于.NET 9.0构建企业级AI智能体对话平台的实战之旅
人工智能·.net·ai智能体·a2a协议·agent framework