>  기사  >  백엔드 개발  >  C#을 사용하여 QR 코드를 생성하는 최신 솔루션, 자세한 설명 및 예제(QRCoder)

C#을 사용하여 QR 코드를 생성하는 최신 솔루션, 자세한 설명 및 예제(QRCoder)

php是最好的语言
php是最好的语言원래의
2018-07-26 16:09:5414293검색

QR코드를 여러개 만들어 보신 분 계시나요? 이번 글에서는 C#을 사용하여 QR코드를 생성하는 방법을 소개하겠습니다. 먼저 QR코드 생성에 필요한 QRCodeGenerator, QRCodeData, QRCode 세 가지 클래스에 대해 설명하겠습니다. 나중에 이해하기 쉽도록. 그들의 책임은 무엇입니까? QRCodeGenerator: QRCodeData의 QR 코드 중간에 있는 Matrix인 QR 코드에 저장된 데이터 개체를 지정된 방식으로 생성하는 데 사용됩니다. 그런 다음 QRCode는 QRCodeData를 가져와 QR 코드

QR 코드

1를 생성합니다. 서문

최근에 QR코드 관련 일을 하다보니 QR코드를 접하게 되어서 써보게 됐으니 써봐야겠어요

사실 관련 글이 정말 셀 수 없을 정도로 많아요 QR 코드, 그리고 그 중 다수는 정말 좋습니다. 하지만 다른 사람들이 한다고 해서 학습하고 기록할 가치가 없다는 의미는 아닙니다. 조만간 일어날 일

패키지 소개

1. NuGet을 통한 QRCoder 소개

a) 먼저 qrcoderbagc)를 소개한 후 여기에 chestnut_qrcode

b)라는 이름의 새 카테고리 라이브러리를 만듭니다. nuget을 통해) 성공적인 설치를 확인하세요) QRCoder의 참조가 참조

e)에 나타납니다. 이때 소개 작업은 완료되었지만

Encoder.cs

를 쉽게 생성할 수 있습니다. C#을 사용하여 QR 코드를 생성하는 최신 솔루션, 자세한 설명 및 예제(QRCoder)

QR 코드 생성 클래스C#을 사용하여 QR 코드를 생성하는 최신 솔루션, 자세한 설명 및 예제(QRCoder)

1. 준비

먼저 이야기해 보겠습니다. QR 코드를 생성하는 데 필요한 세 가지 클래스를 살펴보겠습니다. 무엇 그들의 책임

은 무엇인가요?

QRCodeGenerator静态公共类: QR 코드에 저장된 데이터 개체를 지정된 방식으로 생성하는 데 사용됩니다. 즉, QR 코드 중간에

QRCodeData

Matrix

를 생성한 다음

QRCode

QRCodeData
    를 가져옵니다. 그리고 QR 코드를 생성합니다
  • 2. 인코딩

  • Encoder.cs

    전체 코드는 다음과 같습니다.

    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;
    
            }
        }
    }
  • 내결함성과 버전 사이의 매개변수는 인코딩 형식과 관련이 있습니다.
  • Form 준비

  • 1. Appearance

여기 Seaconch는 winform 프로젝트를 사용합니다. 스크린샷을 찍으세요

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

                }
        }
    }
}
C# QR 코드 생성 효과를 보세요

관련 기사:

[c# 튜토리얼] C# 데이터 유형

관련 동영상:

Geek Academy C# 동영상 튜토리얼

위 내용은 C#을 사용하여 QR 코드를 생성하는 최신 솔루션, 자세한 설명 및 예제(QRCoder)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.