.net 生成二维码图片

引用nuget包

QRCoder-ImageSharp

csharp 复制代码
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="text">内容</param>
        /// <param name="width">宽度</param>
        /// <param name="height">高度</param>
        /// <returns>Bitmap对象</returns>
        public Image GenerateQRCode(string text, int width, int height)
        {
            using QRCodeGenerator qrGenerator = new QRCodeGenerator();
            using QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
            using QRCoder.BitmapByteQRCode bitmapByteQRCode = new BitmapByteQRCode(qrCodeData);
          

            var datas = bitmapByteQRCode.GetGraphic(5, "#000000", "#ffffff");
            Image image = Image.Load(datas);
            image.Mutate(ctx =>
            {
                ctx.Resize(width, height);
            });
            return image;
        }

        /// <summary>
        /// 生成带Logo的二维码
        /// </summary>
        /// <param name="text">内容</param>
        /// <param name="width">宽度</param>
        /// <param name="height">高度</param>
        /// <param name="logoImage">Logo</param>
        /// <returns>Bitmap对象</returns>
        public Image GenerateQRCodeWithLogo(string text, int width, int height, Image logoImage)
        {
            var qrCodeImage = GenerateQRCode(text, width, height);
            // 计算插入 logo 的位置


            int x = (width - logoImage.Width) / 2;
            int y = (height - logoImage.Width) / 2;

            qrCodeImage.Mutate(ctx => {
                ctx.DrawImage(logoImage, new Point(x, y), 1);
            });

            return qrCodeImage;
        }
相关推荐
咪咪渝粮3 分钟前
JavaScript 中constructor 属性的指向异常问题
开发语言·javascript
最初的↘那颗心4 分钟前
Java HashMap深度解析:原理、实现与最佳实践
java·开发语言·面试·hashmap·八股文
后台开发者Ethan1 小时前
Python需要了解的一些知识
开发语言·人工智能·python
常利兵2 小时前
Kotlin作用域函数全解:run/with/apply/let/also与this/it的魔法对决
android·开发语言·kotlin
幼稚园的山代王2 小时前
Kotlin-基础语法练习一
android·开发语言·kotlin
重生成为编程大王2 小时前
Java ConcurrentHashMap 深度解析
java·开发语言
tanyongxi663 小时前
C++ 特殊类设计与单例模式解析
java·开发语言·数据结构·c++·算法·单例模式
遗憾皆是温柔3 小时前
24. 什么是不可变对象,好处是什么
java·开发语言·面试·学习方法
wearegogog1233 小时前
C语言中的输入输出函数:构建程序交互的基石
c语言·开发语言·交互
Fine姐3 小时前
The Network Link Layer: 无线传感器中Delay Tolerant Networks – DTNs 延迟容忍网络
开发语言·网络·php·硬件架构