先到http://download.csdn.net/detail/hhxin635612026/6989797,下载ThoughtWorks.QRCode.dll
1、先将dll文件放入debug下,路径如下图
2、导入dll文件到当前项目,点击添加引用
在浏览中bin->debug下找到ThoughtWorks.QRCode.dll,点击确定
项目中出现下图情况说明添加成功
3、程序编写,
以下为封装的二维码生成类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ThoughtWorks.QRCode.Codec;
using System.Drawing;
namespace WindowsFormsApplication1
{
class GenerateQRCode
{
/// <summary>
/// 生成QRcode二维码
/// </summary>
/// <param name="code">要编码的字符串</param>
/// <param name="size">生成图片的高度</param>
/// <returns>生成后的二维码图片</returns>
public static Bitmap GetQRCode(string code, int size)
{
QRCodeEncoder qrEntity = new QRCodeEncoder();
qrEntity.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二维码编码方式
qrEntity.QRCodeScale = 10;//每个小方格的宽度
qrEntity.QRCodeVersion = 5;//二维码版本号
qrEntity.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//纠错码等级
System.Drawing.Bitmap srcimage;
//动态调整二维码版本号,上限40,过长返回空白图片,编码后字符最大字节长度2953
while (true)
{
try
{
srcimage = qrEntity.Encode(code, System.Text.Encoding.UTF8);
break;
}
catch (IndexOutOfRangeException e)
{
if (qrEntity.QRCodeVersion < 40)
{
qrEntity.QRCodeVersion++;
}
else
{
srcimage = new Bitmap(100, 100);
break;
}
}
}
//为生成的二维码图像裁剪白边并调整为请求的高度
return srcimage;
}
}
}
4、生成二维码主要语句
pictureBoxQRCode.Image = GenerateQRCode.GetQRCode(qrCode, 155);
就会在PictureBox控件上生成二维码,其中qrCode为二维码内容参数
private void 创建ToolStripMenuItem_Click(object sender, EventArgs e)
{
comboBoxCodeType.SelectedIndex = 1;//非微信二维码
string timestamp = Convert.ToString(DateTimeExtensions.currentTimeMillis(DateTime.Now));//时间戳
INIClass inic = new INIClass(Application.StartupPath + @"\demo.ini");//初始化路径;
string token = inic.IniReadValue("Token", "token");//机构令牌
string fullName = textBoxFullname.Text;
string mob = textBoxMob.Text;
string qrCode = fullName + mob + token + timestamp;
textBoxQrCode.Text = qrCode;
pictureBoxQRCode.Image = GenerateQRCode.GetQRCode(qrCode, 155);
// MessageBox.Show(""+qrCode.Length);显示二维码长度
}