.NetCore——QRCoder生成二维码

一、开始
本文使用QRCoder实现生成二维码,并且在空白区域放入自定义文字。
引入QRCoder
在这里插入图片描述
具体实现如下
代码中一些参数等问题,均通过注释体现

static void Main(string[] args)
        {
            //创建一个新的QRCodeGenerator实例
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            //创建一个二维码 “123123”为显示内容
            QRCodeData qrCodeData = qrGenerator.CreateQrCode("123123", QRCodeGenerator.ECCLevel.M, true);
            //放入生成的二维码
            QRCode qrCode = new QRCode(qrCodeData);
            //获取到二维码图形
            Bitmap qrCodeImage = qrCode.GetGraphic(15, Color.Black, Color.White, false);

            /* GetGraphic方法参数说明
             * public Bitmap GetGraphic(int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)
             * int pixelsPerModule:生成二维码图片的像素大小 ,我这里设置的是5 
             * Color darkColor:暗色   一般设置为Color.Black 黑色
             * Color lightColor:亮色   一般设置为Color.White  白色
             * Bitmap icon :二维码 水印图标 例如:Bitmap icon = new Bitmap(路径); 默认为NULL ,加上这个二维码中间会显示一个图标
             * int iconSizePercent: 水印图标的大小比例 ,可根据自己的喜好设置 
             * int iconBorderWidth: 水印图标的边框
             * bool drawQuietZones:静止区,位于二维码某一边的空白边界,用来阻止读者获取与正在浏览的二维码无关的信息 即是否绘画二维码的空白边框区域 默认为true
            */

            //新图形(给出自定义大小,可以解决二维码生成时因为内容而影响图片大小的问题)
            /*
             * 550为宽高 
             * +60为上下左右各留出30的空白区域
             * 35*2为我要给图片底下添加字体 最多两行 35是行高 提前调试得知
             */
            Bitmap newBM = new Bitmap(550 + 60, 550 + (35 * 2) + 60);
            //新画布
            Graphics newGP = Graphics.FromImage(newBM);
            //清除所有背景色并指定背景颜色
            newGP.Clear(Color.White);
            // 插值算法的质量
            newGP.InterpolationMode = InterpolationMode.HighQualityBicubic;
            //将旧图画入新图中
            /*
             * qrCodeImage:旧图
             * new Rectangle(30, 30, 550, 550):在画布上操作的定位及宽高(前两个参数为距左边,距顶部,后边为宽高)  此处宽高为自定义
             * new Rectangle(0, 0, qrCodeImage.Width, qrCodeImage.Height):要操作图片的定位及宽高
             * GraphicsUnit.Pixel:使用像素为单位
             */
            newGP.DrawImage(qrCodeImage, new Rectangle(30, 30, 550, 550), new Rectangle(0, 0, qrCodeImage.Width, qrCodeImage.Height), GraphicsUnit.Pixel);
            //设置字体
            Font font = new Font("楷体", 30f, FontStyle.Bold, GraphicsUnit.Pixel);
            文字居中(不会换行)
            文字长度
            //int strWidth = (int)g2.MeasureString("嗷嗷待食发货时肯定会房间卡是放假卡上的合肥师范", font1).Width;
            总长度减去文字长度的一半  (居中显示)
            //int wordStartX = (qrCodeImage.Width - strWidth) / 2;
            //int wordStartY = qrCodeImage.Height - 30;
            //g2.DrawString("嗷嗷待食发货时肯定会房间卡是放假卡上的合肥师范", font1, Brushes.Black, wordStartX, wordStartY);

            //以下为文字居中处理(可以换行)
            RectangleF rec = new RectangleF((float)(newBM.Width * 0.10), newBM.Height - ((35 * 2) + 15), (float)(newBM.Width * 0.80), font.Height * 2);
            Brush fontBrush = SystemBrushes.ControlText;
            //此处为设置居中方式可以让换行后的文字也居中
            StringFormat sformat = new StringFormat();
            sformat.Alignment = StringAlignment.Center;
            sformat.LineAlignment = StringAlignment.Center;
            newGP.DrawString("嗷嗷待食发货时肯定会房间卡是放假卡上的合肥师范", font, fontBrush, rec, sformat);
            //资源释放
            newGP.Dispose();

            newBM.Save(Path.Combine(AppContext.BaseDirectory, $"{Guid.NewGuid()}.jpg"));
        }

下图为实现效果
在这里插入图片描述
可以从结果中看出 符合我们代码的逻辑。空白区域,间距,文字,文字换行,文字居中。

在Linux中需要执行sudo apt-get install libgdiplus下载安装libgdiplus库

https://www.88531.cn/?p=36369


新软师兄 » c#.用QRCoder包快速生成二维码并向图片写入文字调整位置
50T免费网盘资源大集合【持续更中~~~~】:点击查看

dase kand pornhan.mobi xvideo desi gay pcso 2pm result today pinoytvfriends.com where i can watch bad romeo كلام فى النيك wfporn.com قصص محارم حديثة busporn porngugu.mobi indian sexx vedios sex ka video noticieroporno.com himachal pradesh sex com
nero hentai hentaitgp.com ламия хентай www.mom xxx.com alohaporn.me sahara knite mature fucking tubepatrolporn.com bhabi sex indian girl sex gotporn.mobi xnxx family strocks ang probinsyano july 20 2022 full episode youtube pilipinoteleserye.com ano ang pambansang sasakyan ng pilipinas
احلي سكس محارم pornxporn.org نيك فلاحى multi.xnxx alohaporn.net telugu sex chart سكس قصيرات arabysexy.org نيك نقاب www assames sex com umora.info desi sexy bhabi 8teenx bukaporn.com india hot sex videos