首页 > 编程语言 >Asp.net Core 跨平台生成带Logo二维码

Asp.net Core 跨平台生成带Logo二维码

时间:2022-09-30 15:00:50浏览次数:47  
标签:Core Asp return var 跨平台 using logoPath new public

1. nuget 引用  QRCoder-ImageSharp

2.代码

using QRCoder;
using SixLabors.ImageSharp.Formats.Jpeg;
using Color = SixLabors.ImageSharp.Color;
using Image = SixLabors.ImageSharp.Image;

namespace Common
{
    public class QrCoderUtil
    {
       

        /// <summary>
        /// 生成带logo二维码
        /// </summary>
        /// <param name="content"></param>
        /// <param name="logoPath"></param>
        /// <returns></returns>
        public static byte[] CreateQrCode(string content, string logoPath)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(content, QRCodeGenerator.ECCLevel.M);
            QRCode qrCode = new QRCode(qrCodeData);
            var qrCodeImage = qrCode.GetGraphic(20,Color.Black, Color.White,Image.Load(new MemoryStream(File.ReadAllBytes(logoPath))));
          //  return qrCodeImage;

            MemoryStream ms = new MemoryStream();
            if (qrCodeImage == null)
                return new byte[ms.Length];
            qrCodeImage.Save(ms,new JpegEncoder());
            var bPicture = ms.GetBuffer();
            return bPicture;
        }

    }

}

 3.使用

   public class QrCodeModel : PageModel
    {
        private readonly IWebHostEnvironment _hostingStartup;
        public QrCodeModel(IWebHostEnvironment wHostingStartup)
        {
            _hostingStartup = wHostingStartup;
        }
        public IActionResult OnGet(string data)
        {
            var logoPath = _hostingStartup.WebRootPath+ "/images/qrcodelogo.png";
            Response.ContentType = "image/jpeg";
            //data = SecurityUtil.DecryptString(data);
            var bitmap = QrCoderUtil.CreateQrCode(data, logoPath);
            return File(bitmap, "image/png");
        }
    }

 

标签:Core,Asp,return,var,跨平台,using,logoPath,new,public
From: https://www.cnblogs.com/zqyo2000z/p/16744925.html

相关文章

  • Truenas Core 配置端口聚合
    最近使用TruenasCore非常舒服,于是准备扩大规模,设备自带的2.5G网口就略显不足,于是准备上双万兆网卡,然后做一个端口聚合装上后成功开机,打开WEB段界面发现已经成功识别设备......
  • 在 asp.net core 中,更换使用 Newtonsoft.Json 并阻止驼峰化命名
    首先需要在引用nuget包:Microsoft.AspNetCore.Mvc.NewtonsoftJson然后在添加MVC的Service时,进行添加配置:builder.Services.AddControllersWithViews().A......
  • EF Core 关系配置 一对一
    一个订单对应一个快递信息在一对多关系中,EFCore会自动在多端的表中生成一个指向一端的外键列,不需要我们显式地声明外键属性。但是在一对一关系中,必须显式地在其中一个实......
  • CodeTyphon跨平台交叉编译配置
    CodeTyphon和Lazarus的关系相当于就是ubuntu和linux的关系https://www.lmlphp.com/user/57824/article/item/1643421/不过CodeTyphon提供了很多一键配置即可使用的交叉......
  • CYQ.Data 数据框架 跨平台应用开发
    为大伙揭开了​​CYQ.Data​​的性能体验,在写数据方面,表现的相当接近原始的ADO.NET操作。​ 那在数据读取方面呢?有兴趣的朋友可自行测试一下。​ 本篇为你揭开的是:​​CY......
  • EF Core 关系配置 一对多 单向导航属性
    一对多单向导航属性实体类:///<summary>///用户///</summary>publicclassUser{publiclongId{get;set;}///<summar......
  • EF Core 关系配置 一对多 双向导航属性
    EFCore支持一对多、多对对、一对一关系。一篇文章Article包含多条评论Comment Article(1)——》Comment(1,2,3...)对于主从结构的“一对多”表关系,我们一般声明为......
  • gdb调试coredump学习
    转自:https://www.cnblogs.com/bodhitree/p/5850212.html1.查看发生coredump之后,用gdb进行查看core文件的内容,以定位文件中引发coredump的行.gdb[execfile][co......
  • Asp.Net Core 过滤器
    前言    过滤器,从我们开始开发Asp.Net应用程序开始,就一直伴随在我们左右;Asp.NetCore提供多种类型的过滤器,以满足多种多样的业务应用场景;并且在Asp.NetCore本身......
  • Implementing Google Analytics on an ASP.NET website
    ImplementingGoogleAnalyticsonanASP.NETwebsiteGoogleAnalyticsisaserviceofferedbyGooglethatgeneratesdetailedstatisticsaboutawebsite’stra......