二维码生成、解析
1.添加引用ThoughtWorks.QRCode.dll控件。
2.添加类:QRCode,即:QRCode.cs
先引入命名空间:using System.Drawing;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
代码: //二维码生成方法
public Image QREncoder(string cardID)
{
Image image = null;
QRCodeEncoder encoder = new QRCodeEncoder();
try
{
////设置编码类型
encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
////设置尺寸
encoder.QRCodeScale = 3;
////设置版本
encoder.QRCodeVersion = 2;
////设置纠错
encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
image = encoder.Encode(cardID, System.Text.Encoding.UTF8);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
image = null;
}
return image;
}
// 根据二维码获取数据值方法
public string QRDecoder(Image image)
{
string str = new QRCodeDecoder().decode(new QRCodeBitmapImage(new Bitmap(image)), System.Text.Encoding.UTF8);
return str;
}
3.页面功能代码:
//生成二维码
private void button1_Click(object sender, EventArgs e)
{
QRCode qrcode = new QRCode();
pictureBox1.Image=qrcode.QREncoder(textBox1.Text);
}
//二维码解码
private void button2_Click(object sender, EventArgs e)
{
QRCode qrcode = new QRCode();
lblqrcode.Text = qrcode.QRDecoder(pictureBox1.Image);
}
|