C# Gma.QrCodeNet生成二维码
一.使用C#生成二维码类库之一是qrcodenet
源代码地址:
http://qrcodenet.codeplex.com/
二.使用实例
定义处理字符串
static string url = "http://blog.csdn.net/u011127019";
1.实例1
//生成二维码 static void Generate1() { //创建二维码生成类 QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M); QrCode qrCode = qrEncoder.Encode(url); //输出显示在控制台 for (int j = 0; j < qrCode.Matrix.Height; j++) { for (int i = 0; i < qrCode.Matrix.Width; i++) { char charToPoint = qrCode.Matrix[i, j] ? '█' : ' '; Console.Write(charToPoint); } Console.WriteLine(); } }
2.生成二维码,保存成图片
//生成图片 static void Generate2() { QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M); QrCode qrCode = qrEncoder.Encode(url); //保存成png文件 string filename = @"H:\桌面\截图\url.png"; GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White); using (FileStream stream = new FileStream(filename, FileMode.Create)) { render.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream); } }
3.支持中文
//生成中文二维码 static void Generate3() { QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M); QrCode qrCode = qrEncoder.Encode("我是小天马"); //保存成png文件 string filename = @"H:\桌面\截图\cn.png"; GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White); Bitmap map = new Bitmap(500, 500); Graphics g = Graphics.FromImage(map); g.FillRectangle(Brushes.Red, 0, 0, 500, 500); render.Draw(g, qrCode.Matrix, new Point(20, 20)); map.Save(filename, ImageFormat.Png); }
4.调整二维码大小
//设置二维码大小 static void Generate4() { QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M); QrCode qrCode = qrEncoder.Encode("我是小天马"); //保存成png文件 string filename = @"H:\桌面\截图\size.png"; //ModuleSize 设置图片大小 //QuietZoneModules 设置周边padding /* * 5----150*150 padding:5 * 10----300*300 padding:10 */ GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(10, QuietZoneModules.Two), Brushes.Black, Brushes.White); Point padding = new Point(10, 10); DrawingSize dSize = render.SizeCalculator.GetSize(qrCode.Matrix.Width); Bitmap map = new Bitmap(dSize.CodeWidth + padding.X, dSize.CodeWidth + padding.Y); Graphics g = Graphics.FromImage(map); render.Draw(g, qrCode.Matrix, padding); map.Save(filename, ImageFormat.Png); }
5.生成带Logo的二维码
//生成带Logo的二维码 static void Generate5() { QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M); QrCode qrCode = qrEncoder.Encode("我是小天马"); //保存成png文件 string filename = @"H:\桌面\截图\logo.png"; GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White); DrawingSize dSize = render.SizeCalculator.GetSize(qrCode.Matrix.Width); Bitmap map = new Bitmap(dSize.CodeWidth, dSize.CodeWidth); Graphics g = Graphics.FromImage(map); render.Draw(g, qrCode.Matrix); //追加Logo图片 ,注意控制Logo图片大小和二维码大小的比例 Image img = Image.FromFile(@"F:\JavaScript_Solution\QrCode\QrCode\Images\101.jpg"); Point imgPoint = new Point((map.Width - img.Width) / 2, (map.Height - img.Height) / 2); g.DrawImage(img, imgPoint.X, imgPoint.Y, img.Width, img.Height); map.Save(filename, ImageFormat.Png); }

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2016-05-16 AngularJS with MVC4 CRUD
2016-05-16 Using AngularJS with .NET MVC 5
2016-05-16 js深拷贝和浅拷贝
2016-05-16 Entity Framework在WCF中序列化的问题
2016-05-16 Entity Framework Code First级联删除
2016-05-16 EF Code First学习笔记:数据库创建
2016-05-16 EF Code First 学习笔记:表映射