Home > Article > Backend Development > The latest solution for generating QR codes using C#, detailed explanation and examples (QRCoder)
I don’t know if anyone has made multiple QR codes? In this article, I will introduce to you how to use C# to generate QR codes. First, I will talk about the three classes QRCodeGenerator, QRCodeData, and QRCode required to generate QR codes. For easy understanding later. What are their responsibilities? QRCodeGenerator: Used to generate the data object stored in the QR code through the specified method, which is the Matrix in the middle of the QR code in QRCodeData. Then QRCode gets the QRCodeData and generates the QR code
I have been working on some things related to QR codes recently, so I came into contact with some QR codes, so since I have used them, I must have used them.
In fact, about There are really countless articles about QR codes, and many of them are written very seriously and are very good, but it is just like learning. Just because others know it does not mean that you have no value in learning and recording, so learning does not come sooner or later
a) First, we create a new Class Library project, named here chestnut_qrcode
b) Then introduce the QRCoder package through NuGet
c) See the picture for operation
d) After the installation is successful, the reference to QRCoder will appear in the project reference
e) At this time, the introduction work has been completed, but it can be easily Create a Encoder.cs static public class
Let’s talk about it first Let’s take a look at the three classes needed to generate QR codes:
QRCodeGenerator
responsibilities?
QRCodeGenerator: Used to generate the data object stored in the QR code through the specified method, that is, QRCodeData Matrix in the middle of the QR code , then QRCode gets QRCodeData and generates QR code
2. EncodingEncoder.cs All codes are as follows:
using System.Drawing; namespace chestnut_qrcode { /// <summary> /// 二维码编码器 /// </summary> public static class Encoder { /// <summary> /// 生成二维码 /// </summary> /// <param name="msg">信息</param> /// <param name="version">版本 1 ~ 40</param> /// <param name="pixel">像素点大小</param> /// <param name="icon_path">图标路径</param> /// <param name="icon_size">图标尺寸</param> /// <param name="icon_border">图标边框厚度</param> /// <param name="white_edge">二维码白边</param> /// <returns>位图</returns> public static Bitmap code(string msg, int version, int pixel, string icon_path, int icon_size, int icon_border, bool white_edge) { QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator(); QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M/* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version); QRCoder.QRCode code = new QRCoder.QRCode(code_data); Bitmap icon = new Bitmap(icon_path); Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge); return bmp; } } }The parameters between fault tolerance and version are related to the encoding format. Some formats do not support Chinese.Prepare the Form1. Appearance
winform project, just take a screenshot
2. Codeusing System; using System.Drawing; using System.Windows.Forms; namespace chestnut_form { public partial class frm_qrcode : Form { public frm_qrcode() { InitializeComponent(); } // 窗体加载 private void frm_qrcode_Load(object sender, EventArgs e) { cb_version.SelectedIndex = 1; cb_pixel.SelectedIndex = 0; cb_icon_size.SelectedIndex = 0; cb_icon_border.SelectedIndex = 1; } // 编码 private void btn_encode_Click(object sender, EventArgs e) { int version = Convert.ToInt16(cb_version.Text); int pixel = Convert.ToInt16(cb_pixel.Text); string str_msg = tb_msg.Text; int int_icon_size = Convert.ToInt16(cb_icon_size.Text); int int_icon_border = Convert.ToInt16(cb_icon_border.Text); bool b_we = rb_we_y.Checked ? true : false; Bitmap bmp = chestnut_qrcode.Encoder.code(str_msg, version, pixel, "E:/seaconch/git/1.jpg", int_icon_size, int_icon_border, b_we); pb_qrcode.Image = bmp; } // 保存 private void btn_save_Click(object sender, EventArgs e) { if (pb_qrcode.Image != null) using (SaveFileDialog sfd = new SaveFileDialog()) { sfd.Filter = "(*.png)|*.png|(*.bmp)|*.bmp"; if (sfd.ShowDialog() == DialogResult.OK) pb_qrcode.Image.Save(sfd.FileName); } } } }
Look at the effect of C# QR code generation
Related articles: Related videos:Geek Academy C# video tutorial
The above is the detailed content of The latest solution for generating QR codes using C#, detailed explanation and examples (QRCoder). For more information, please follow other related articles on the PHP Chinese website!