首先,将 ThoughtWorks.QRCode.dll 放在 bin 目录后,在页面中引用:
using
ThoughtWorks.QRCode.Codec;
thoughtworks.qrcode.dll 下载地址:
http://download.youkuaiyun.com/detail/u012543266/9770135
1.在C#中直接引用ThoughtWorks.QRCode.dll 类
2.封装方法返回Bitmap
public Bitmap QRCodeBimapForString(string nr)
{
string enCodeString = nr;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
qrCodeEncoder.QRCodeScale = 4;//大小(值越大生成的二维码图片像素越高)
//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
qrCodeEncoder.QRCodeVersion = 7;
//错误效验、错误更正(有4个等级)
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
return qrCodeEncoder.Encode(enCodeString, Encoding.GetEncoding("GB2312"));
}
3.保存到本地
public Image QRCodeSave(string nr)
{
Bitmap bt = QRCodeBimapForString(nr);
Image img = bt;
string filePath = "../../image/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".png";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string path = Path.Combine(filePath, fileName);
bt.Save(path);
//如果要显示图片就要有返回值
return img ;
}
4.调用QRCodeSave()
private void button1_Click(object sender, EventArgs e)
{
QRCode qrCode = new QRCode();
//我自己的博客“http://blog.youkuaiyun.com/hyunbar”
Image img = qrCode.QRCodeSave("http://blog.youkuaiyun.com/hyunbar");
if (img != null)
{
this.pictureBox1.Image = img;
}
}