Maison  >  Article  >  développement back-end  >  La dernière solution pour générer des codes QR en C#, explication détaillée et exemples (QRCoder)

La dernière solution pour générer des codes QR en C#, explication détaillée et exemples (QRCoder)

php是最好的语言
php是最好的语言original
2018-07-26 16:09:5414378parcourir

Je me demande si quelqu'un a créé plusieurs codes QR ? Dans cet article, je vais vous présenter comment utiliser C# pour générer des codes QR. Tout d'abord, je parlerai des trois classes QRCodeGenerator, QRCodeData et QRCode requises pour générer des codes QR. Pour une compréhension facile plus tard. Quelles sont leurs responsabilités ? QRCodeGenerator : utilisé pour générer l'objet de données stocké dans le code QR via la méthode spécifiée, qui est la matrice au milieu du code QR dans QRCodeData. Ensuite, QRCode obtient le QRCodeData et génère le code QR

Code QR.

1. Préface

Récemment, j'ai travaillé sur certaines choses liées aux codes QR, donc je suis entré en contact avec certains codes QR, donc depuis que je les ai utilisés, je pense qu'ils ont été utilisé

En fait, il existe d'innombrables articles sur les codes QR, et beaucoup d'entre eux sont écrits très sérieusement et sont très bons, mais c'est comme apprendre. Ce n'est pas parce que les autres le savent. vous n'avez aucune valeur dans l'apprentissage et l'enregistrement, donc l'apprentissage ne vient pas tôt ou tard

Introduire le package

1 Présentez QRCoder via NuGet

a) Tout d'abord, nous créons un. nouveau projet Class Library, nommé ici chestnut_qrcode

b) Ensuite, introduisez le package QRCoder via NuGet

c) Voir l'image pour le fonctionnement

La dernière solution pour générer des codes QR en C#, explication détaillée et exemples (QRCoder)

La dernière solution pour générer des codes QR en C#, explication détaillée et exemples (QRCoder)

d) Après une installation réussie, la référence du QRCoder apparaîtra dans la référence du projet

e) À l'heure actuelle, le travail d'introduction est terminé, mais il peut être facilement Créer un Encoder.cs 静态公共类

Classe de génération de code QR

1. Préparation

Nous parlons d'abord ici des conditions requises pour générer du code QR Trois classes :

  • QRCodeGenerator

  • QRCodeData

  • QRCode

Quelles sont leurs responsabilités ?

QRCodeGenerator : utilisé pour générer l'objet de données stocké dans le code QR d'une manière spécifiée, c'est-à-dire QRCodeData Matrix au milieu du QR code , puis QRCode récupère QRCodeData et génère le QR code

2. Encodage

Encoder.cs Le l'intégralité du code est la suivante :

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;

        }
    }
}

Les paramètres entre tolérance aux pannes et version sont liés au format d'encodage. Certains formats ne supportent pas le chinois

Préparer le formulaire

. 1. Apparence

Ici, seaconch utilise le projet winform, prenez simplement une capture d'écran

La dernière solution pour générer des codes QR en C#, explication détaillée et exemples (QRCoder)

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

                }
        }
    }
}
2.

Regardez l'effet de génération de code QR C#

La dernière solution pour générer des codes QR en C#, explication détaillée et exemples (QRCoder)

Articles connexes :

[Tutoriel c#】Type de données C#

Vidéos associées :

Tutoriel vidéo C# de la Geek Academy

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn