博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# Gma.QrCodeNet生成二维码
阅读量:6194 次
发布时间:2019-06-21

本文共 3269 字,大约阅读时间需要 10 分钟。

一.使用C#生成二维码类库之一是qrcodenet

源代码地址:

二.使用实例

定义处理字符串

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);}
你可能感兴趣的文章
ansible debug模块学习笔记
查看>>
C# 禁止控件重绘(绘制)
查看>>
C# 控件开发中常用属性整理
查看>>
Spring的IoC容器(转)BeanFactory
查看>>
TPYBoard开发板ADC数模转换一: 初识ADC使用
查看>>
一个JS多个数组取交集算法
查看>>
HTML(form标签)、CSS选择器一
查看>>
Ta-Lib用法介绍 !
查看>>
关于 android百度地图 调用 地理位置 经纬度坐标,只调用一次的解决方法,通知栏不总是 搜索 GPS 。。。...
查看>>
Apache CXF 框架结构和基本原理
查看>>
程序员开发常用英语词汇
查看>>
Class
查看>>
YARN中内存的设置
查看>>
Django admin 自定制
查看>>
随机ID添加
查看>>
Htmlparser专题
查看>>
1060. 爱丁顿数(25)
查看>>
meizu mx2 android adb driver install
查看>>
序列号
查看>>
第四十一天
查看>>