使用QRCode生成二维码 - (第四十六讲)
视频讲解如下:
站内源码下载:
使用QRCode生成二维码.zip
本章节给大家讲讲如何使用QRCode生成二维码,QRCode是.net环境下的第三方库:ThoughtWorks.QRCode。只支持正方形的二维码格式,条形码什么的都不支持。
我们先来看看演示效果:

using System;
using System.Drawing;
using System.Windows.Forms;
using ThoughtWorks.QRCode.Codec;
namespace WindowsFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBox1.Items.AddRange(Enum.GetNames(typeof(QRCodeEncoder.ENCODE_MODE)));
comboBox1.SelectedIndex = 0;
comboBox2.Items.AddRange(Enum.GetNames(typeof(QRCodeEncoder.ERROR_CORRECTION)));
comboBox2.SelectedIndex = 0;
}
private void button_执行转换_Click(object sender, EventArgs e)
{
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
// 生成二维码内容模式分为三种,数字,数字字母,字节,这个基本上都设置成Byte,支持汉字
qrCodeEncoder.QRCodeEncodeMode = (QRCodeEncoder.ENCODE_MODE)Enum.Parse(typeof(QRCodeEncoder.ENCODE_MODE), comboBox1.Text);
// 设置二维码的大小,默认4,在尺寸小的情况下,版本参数过高则设备难以识别二维码
qrCodeEncoder.QRCodeScale = int.Parse(textBox2.Text);
// 设置二维码的版本,默认7 该值影响二维码最高数据容量 7大致对应40个汉字长度,内容超出择需提升该数值
qrCodeEncoder.QRCodeVersion = int.Parse(textBox3.Text);
// 设置错误校验级别,默认中等,二维码被遮挡住一部分实际上也是能扫出内容的,这个效验级别的意思就是
// 当遮挡部分最大占整体多少时仍然可以被扫出来,M大概在20%左右,H为30%,级别越高相应的数据容量会缩小
// 那些中间带图标的二维码,其实就是简单粗暴的用LOGO遮挡住了中间部分
qrCodeEncoder.QRCodeErrorCorrect = (QRCodeEncoder.ERROR_CORRECTION)Enum.Parse(typeof(QRCodeEncoder.ERROR_CORRECTION), comboBox2.Text);
Image image = qrCodeEncoder.Encode(textBox1.Text);
pictureBox1.Image = image;
}
}
}