个性二维码开源专题<基础篇>
二维码原理介绍:
二维码为什么是黑白相间的?黑色表示二进制的“1”,白色表示二进制的“0”
“我们之所以对二维码进行扫描能读出那么多信息,就是因为这些信息被编入了二维码之中。”黄海平说,“制作二维码输入的信息可以分成三类,文本信息,比如名片信息;字符信息,比如网址、电话号码;还有图片信息,甚至还可以包括简短的视频。”数据信息是怎么被编入的呢?信息输入后,首先要选择一种信息编码的码制。现在常见的二维码都是以QR码作为编码的码制。QR码是矩阵式二维码,它是在一个矩形空间内,通过黑、白像素在矩阵中的不同分布,来进行编码的。我们知道电脑使用二进制(0和1)数来贮存和处理数据,而在二维码中,用黑白矩形表示二进制数据我们肉眼能看到的黑色表示的是二进制“1”,白色表示二进制的“0”,黑白的排列组合确定了矩阵式二维条码的内容,以便于计算机对二维码符号进行编码和分析。
百度经验:http://jingyan.baidu.com/article/86f4a73e520e3b37d6526981.html
开始使用:
命名规则最好遵守,因为套入模版使用的是反射技术,对前缀命名有要求。
1.创建类库
命名Yc.QrcodeLib.xxx
2.创建类
命名QrEncode
手脚架:
基础参数:
/// <summary> /// 二维码默认参数 /// </summary> QRCodeEncoder
/// <summary> /// 二维码大小 /// </summary> public int QRCodeScale { get; set; } /// <summary> /// 二维码版本(默认0时,自动适应版本) /// </summary> public int QRCodeVersion { get; set; } /// <summary> /// 二维码编码 /// </summary> public QRCodeEncoder.ENCODE_MODE QRCodeEncodeMode { get; set; } public enum ENCODE_MODE { ALPHA_NUMERIC = 0, NUMERIC = 1, BYTE = 2, } /// <summary> /// 二维码容错率 /// </summary> public QRCodeEncoder.ERROR_CORRECTION QRCodeErrorCorrect { get; set; } public enum ERROR_CORRECTION { L = 0, M = 1, Q = 2, H = 3, } /// <summary> /// 二维码容边距 /// </summary> public int FrameSpacing { get; set; } /// <summary> /// 二维码容高边距 /// </summary> public int FrameSpacingH { get; set; } /// <summary> /// 二维码容宽边距 /// </summary> public int FrameSpacingW { get; set; }
基础方法:
/// <summary> /// 修改填充形状 /// </summary> ChangeFillShape(...)
填充色示例:
QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder(); _qrCodeEncoder.QRCodeForegroundColor = Color.Red;
背景色示例:
QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder(); _qrCodeEncoder.QRCodeBackgroundColor = Color.Red;
边距示例:
QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder(); _qrCodeEncoder.FrameSpacing = 4;
其他就不一一示例了,都大同小异的。
希望这篇文章对大家,研究二维码有更深的认识。
以下是开源地址,国外github,国内oschina.net
oschina.net:
http://git.oschina.net/cheng5x/Yc.QrCode
github:
https://github.com/cheng5x/YcQrCode
码晒客讨论QQ群:
28629273
用心做产品 name:5+x
----------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?