ホームページ >バックエンド開発 >C#.Net チュートリアル >C#を使用してQRコードを生成する最新ソリューション、詳細な説明と例(QRCoder)

C#を使用してQRコードを生成する最新ソリューション、詳細な説明と例(QRCoder)

php是最好的语言
php是最好的语言オリジナル
2018-07-26 16:09:5414411ブラウズ

複数の QR コードを作成した人がいるかどうかわかりませんが?この記事では、C# を使用して QR コードを生成する方法を紹介します まず、QR コードを生成するために必要な 3 つのクラス QRCodeGenerator、QRCodeData、QRCode について説明します。後で分かりやすくするために。彼らの責任は何ですか? QRCodeGenerator: 指定されたメソッドを通じて QR コードに格納されるデータ オブジェクトを生成するために使用されます。これは、QRCodeData 内の QR コードの中央にあるマトリックスです。その後、QRCode は QRCodeData を取得し、QR コード

QR コードを生成します

1. まえがき

##最近 QR コード関連の仕事をしていて、いくつかの QR コードに触れたので、使ったことがあるので、使ったことがあるはずです。 .

実際のところ、QR コードに関する記事は本当に数え切れないほどあり、それらの多くは非常に真剣に書かれていて、非常に優れていますが、それはまるで勉強のようなものです。学習や記録には価値がないため、学習は遅かれ早かれやってくるわけではありません

パッケージの紹介

1.NuGet を通じて QRCoder を導入します

a) まず、新しい

クラス ライブラリ プロジェクト、ここでは chestnut_qrcode

b) 次に、

NuGet を通じて QRCoder パッケージを導入します。

c) 操作については画像を参照してください

C#を使用してQRコードを生成する最新ソリューション、詳細な説明と例(QRCoder)

C#を使用してQRコードを生成する最新ソリューション、詳細な説明と例(QRCoder)

d) インストールが成功すると、

QRCoder# への参照が表示されます。 ## はプロジェクト リファレンスに表示されます e) これで導入作業は完了しましたが、簡単に

Encoder.cs

static public class# を作成することができます。 ##QR コード生成クラス

#1. 準備

まずそれについて話しましょうQR コードを生成するために必要な 3 つのクラスを見てみましょう:

QRCodeGenerator
  • ##QRCodeData

  • QRCode

  • 彼らの # とは##責任

    ?

QRCodeGenerator: 指定されたメソッドを通じて QR コードに格納されたデータ オブジェクトを生成するために使用されます。つまり、中央の QRCodeData

Matrix QR コードの QRCodeQRCodeData を取得し、QR コード 2 を生成します。コードは次のとおりです:

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;

        }
    }
}
フォールト トレランスとバージョンの間のパラメータはエンコード形式に関連しています。一部の形式は中国語をサポートしていません。

フォームを準備します

1。外観

ここでのSeaconchはwinform

プロジェクトを使用しているので、スクリーンショットを撮るだけです

2。コード

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

                }
        }
    }
}

C# QR コード生成の効果を見てみる

C#を使用してQRコードを生成する最新ソリューション、詳細な説明と例(QRCoder)

関連記事: [c# チュートリアル] ] C# データ タイプ

関連ビデオ:C#を使用してQRコードを生成する最新ソリューション、詳細な説明と例(QRCoder)

Geek Academy C# ビデオ チュートリアル

以上がC#を使用してQRコードを生成する最新ソリューション、詳細な説明と例(QRCoder)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。