1.引入ThoughtWorks.QRCode.dll类库到程序中
ThoughtWorks.QRCode.dll下载地址
在工程的右边解决方案中添加引用–>浏览–>找到下载后存放ThoughtWorks.QRCode.dll路径,然后选择ThoughtWorks.QRCode.dll类库---->确定
2.建立MyQR.cs类 用来生成和解析二维码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using ThoughtWorks.QRCode.Codec;
using System.Drawing;
using ThoughtWorks.QRCode.Codec.Data;
namespace ProductQR
{
public class MyQR
{
/// <summary>
/// 生成二维码
/// </summary>
/// <param name="barcodeText">文本</param>
/// <returns>图片</returns>
public Bitmap BarcodeImage(String barcodeText)
{
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeVersion = 0;
Bitmap img = qrCodeEncoder.Encode(barcodeText, Encoding.UTF8);//指定utf-8编码, 支持中文
return img;
//string httpFileName = System.Environment.CurrentDirectory;
//string fileName = "/a.jpg";
//img.Save(httpFileName + fileName);//保存位图
}
/// <summary>
/// 解析二维码文本
/// </summary>
/// <param name="bitmap">图片对象</param>
/// <returns></returns>
public string QRCodeDecoderUtil(Bitmap bitmap)
{
QRCodeDecoder decoder = new QRCodeDecoder();
string decodedString = "";
try
{
decodedString = decoder.decode(new QRCodeBitmapImage(bitmap), Encoding.UTF8);//指定utf-8编码, 支持中文
}
catch (Exception e)
{
return "请先生成二维码!";
}
return decodedString;
}
}
}
测试类Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ProductQR
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MyQR d = new MyQR();
Bitmap b= d.BarcodeImage(textBox1.Text.ToString());
MessageBox.Show("ok!");
pictureBox1.Image = b;
}
private void button2_Click(object sender, EventArgs e)
{
MyQR d = new MyQR();
MessageBox.Show(d.QRCodeDecoderUtil((Bitmap)this.pictureBox1.Image));
}
}
}