.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

相关推荐
rockey6274 小时前
AScript动态脚本多语言环境支持
sql·c#·.net·script·eval·function·动态脚本
dotNET实验室4 小时前
ASP.NET Core 内存缓存实战:一篇搞懂该怎么配、怎么避坑
.net
龙侠九重天5 小时前
ML.NET 实战:快速构建分类模型
分类·数据挖掘·c#·.net
无风听海7 小时前
.NET10之内置日志配置与使用指南
asp.net·.net
沃尔威武16 小时前
数据库 Sinks(.net8)
数据库·.net·webview
大尚来也21 小时前
告别“字符串拼接”:在.NET中用LINQ重塑数据查询
.net·solr·linq
无风听海1 天前
.NET10之Record 深度解析
.net
CodeCraft Studio1 天前
LightningChart .NET v12.5.1 发布:高性能数据可视化再升级,赋能工业与实时数据场景
信息可视化·.net·gpu·数据可视化·lightningchart·高性能图表开发·数据可视化引擎
CyL_Cly1 天前
.net framework 3.5下载( 2.0-4.8大全 )
.net
海盗12341 天前
OxyPlot 在 WPF 中的使用
.net·wpf