好久没有写Blog,都是因为不小心坠入了爱河,时间都给我家那位了,都没时间加班了(嗨呀,不小心撒了一下狗粮),不过,还是希望单身的赶紧找到心仪的另一半,实在找不到,那就加班啊(开个玩笑,别认真)。

二维码神器

现在出门在外,二维码随处可见,吃个东西、买个青菜,没有weixin或者zhifubao的扫一扫来付款,阿姨都嫌弃你了。

这里推荐一款开源二维码的第三方库:QRCoder

QRCoder:https://github.com/codebude/QRCoder/

QRCoder是一个简单的库,用C#.NET编写,可以创建QR码,没有与其他的库有任何依赖关系, 引用就一个几百kb的dll,并且效率还不错。

引入

新建一个winform项目,然后从nuget上引入即可

然后再引入命名空间

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; using QRCoder; //就是它,没有多余的

创建第一张二维码

在GayHub上,QRCoder的readme已经介绍过了,只要4行简单的代码,就可以完成二维码生成了。

QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("The text which should be encoded.", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic();

不过这里做了一个简单的winform来使用它,

private void CreateQR(int pixelsPerModule, string info, Color qrColor, Color qrBackgroundColor, Bitmap logo, int iconSizePercent = , int iconBorderWidth = )
{
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(info, QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(pixelsPerModule, qrColor, qrBackgroundColor, logo, iconSizePercent, iconBorderWidth, true);
picBoxQRCode.Image = qrCodeImage;
} private void CreateQR(int pixelsPerModule, string info, Color qrColor, Color qrBackgroundColor)
{
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(info, QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(pixelsPerModule, qrColor, qrBackgroundColor, true);
picBoxQRCode.Image = qrCodeImage;
}

界面效果:

QRCoder还有许多设置,根据不同需要来传入不同参数即可。

文章中的Demo代码很简单,大家借鉴参考玩玩,欢迎大家来到GayHub交流:https://github.com/EminemJK/QRCodeForm ,码云:https://gitee.com/Backgrounder/QRCodeForm.git

.Net生态社区希望越来越壮大,不断有优秀的开源组件的加入。

最新文章

  1. Ubuntu 14.04下搜狗输入法崩溃重启
  2. JVM的堆(heap)、栈(stack)和方法区(method)
  3. QT 网络编程二(UDP版本)
  4. Nginx下TIME_WAIT过多的调优
  5. 证明ln2=0 和 2=1
  6. 快速掌握grep命令及正则表达式
  7. iOS中UIKit——UIButton设置边框
  8. OC:copy 与 retain 的区别
  9. NGINX的奇淫技巧 —— 3. 不同域名输出不同伺服器标识
  10. 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)
  11. bzoj3890 [Usaco2015 Jan]Meeting Time
  12. Eclipse用法和技巧二十二:快速调整字体大小
  13. OOP 创建对象的7种方式
  14. 今天用C#做的一个小的注册练习
  15. TP3.2写提交的验证码验证
  16. 一篇文章读懂Java类加载器
  17. linux下怎么样上传下载文件夹
  18. CSS水平垂直居中!
  19. python 冒泡、二分查找
  20. JDBC(6)—BeanUtils

热门文章

  1. 帧同步(LockStep)该如何反外挂
  2. Scala编程入门---函数式编程之集合操作
  3. 五年级--python函数高级运用
  4. vim编辑器常见命令归纳大全
  5. 破解linux虚拟机的密码
  6. python3 爬去QQ音乐
  7. SSIS 处理 bit 列
  8. Java多线程-概念与原理
  9. 关于TCP/IP,必知必会的十个经典问题[转]
  10. spring-security doc logout