The latest solution for generating QR codes using C#, detailed explanation and examples (QRCoder)

php是最好的语言
Release: 2018-07-26 16:09:54
Original
14362 people have browsed it

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

QR code

1. Preface

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

Introducing the package

1.Introduce QRCoder through NuGet

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

The latest solution for generating QR codes using C#, detailed explanation and examples (QRCoder)

The latest solution for generating QR codes using C#, detailed explanation and examples (QRCoder)

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

QR code generation class

1. Preparation

Let’s talk about it first Let’s take a look at the three classes needed to generate QR codes:

  • QRCodeGenerator

  • ##QRCodeData

  • QRCode

What are their

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. Encoding

Encoder.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;

        }
    }
}
Copy after login

The parameters between fault tolerance and version are related to the encoding format. Some formats do not support Chinese.

Prepare the Form

1. Appearance

Seaconch here uses the

winform project, just take a screenshot

The latest solution for generating QR codes using C#, detailed explanation and examples (QRCoder)

2. Code

using 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);

                }
        }
    }
}
Copy after login

Look at the effect of C# QR code generation

The latest solution for generating QR codes using C#, detailed explanation and examples (QRCoder)

Related articles:

[c# tutorial] C# data Type

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template