本文摘自PHP中文网,作者php是最好的语言,侵删。
不知道大家有制作多二维码吗?本篇文章我将给大家介绍如何用C#生成二维码,先说一下生成二维码需要的三个类QRCodeGenerator、QRCodeData、QRCode。供后面好理解。他们的 职责 分别是什么呢?QRCodeGenerator :用来通过指定的方式生成二维码存储的数据对象,也就是 QRCodeData 二维码中间的 Matrix,之后 QRCode 得到 QRCodeData 并生成二维码二维码
1.前言
最近在搞二维码方面的一些东西,所以接触了一些二维码相关,那么既然用过了就要有用过了的样子
其实关于二维码的文章真的多的数不胜数,有很多写的很认真,很好,但这就像是学习一样,别人会不代表自己就没有学习和记录的价值,所以说学习不在早晚
引入包
1.通过NuGet引入QRCoder
a)首先,我们新建一个 类库 项目,这里命名为 chestnut_qrcode
b)之后通过 NuGet 引入 QRCoder 包
c)见图操作


d)安装成功后,项目引用中就会出现 QRCoder 的引用
e)这时候引入工作已经完成,不过可以顺手创建一个 Encoder.cs 静态公共类
二维码生成类
1.前期准备
这里先说一下生成二维码需要的三个类:
QRCodeGenerator
QRCodeData
QRCode
他们的 职责 分别是什么呢?
QRCodeGenerator :用来通过指定的方式生成二维码存储的数据对象,也就是 QRCodeData 二维码中间的 Matrix,之后 QRCode 得到 QRCodeData 并生成二维码
2.编码
Encoder.cs 全部代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | using System.Drawing;
namespace chestnut_qrcode
{
/// <summary>
/// 二维码编码器
/// </summary>
public static class Encoder
{
/// <summary>
/// 生成二维码
/// </summary>
/// <param name= "msg" >信息</param>
/// <param name= "version" >版本 1 ~ 40 </param>
/// <param name= "pixel" >像素点大小</param>
/// <param name= "icon_path" >图标路径</param>
/// <param name= "icon_size" >图标尺寸</param>
/// <param name= "icon_border" >图标边框厚度</param>
/// <param name= "white_edge" >二维码白边</param>
/// <returns>位图</returns>
public static Bitmap code (string msg, int version, int pixel, string icon_path, int icon_size, int icon_border, bool white_edge)
{
QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();
QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M , true, true, QRCoder.QRCodeGenerator.EciMode.Utf 8 , version);
QRCoder.QRCode code = new QRCoder.QRCode(code_data);
Bitmap icon = new Bitmap(icon_path);
Bitmap bmp = code .GetGraphic(pixel, Color.Black, Color.White, icon , icon_size, icon_border, white_edge);
return bmp;
}
}
}
|
容错率与 version 之间的参数都与编码格式有关系,有些格式是不支持中文的哦
准备Form
1.外观
这里seaconch使用的是 winform 项目,直接截个图吧
阅读剩余部分
相关阅读 >>
详细介绍data url生成工具c#版第二版的示例代码
c#设计模式-派生类实现非虚接口陷阱的实例代码分享
关于c#代码convert.tochar(null);出现异常的详解(图)
使用c#操作windowad之的windows用户组
详解c#把unicode编码转换为gb编码的示例代码
具体详解c#中三个关键字(params,ref,out)
c# socket实现简单控制台案例
c#中序列化实现深拷贝和datagridview初始化刷新的方法介绍
c#中关于new的用法以及和override的区别分析详解
c# tabcontrol组件如何切换显示form窗体的示例代码
更多相关阅读请进入《二维码》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 最新使用C#生成二维码方案,详解及实例 ( QRCoder )