QR코드를 여러개 만들어 보신 분 계시나요? 이번 글에서는 C#을 사용하여 QR코드를 생성하는 방법을 소개하겠습니다. 먼저 QR코드 생성에 필요한 QRCodeGenerator, QRCodeData, QRCode 세 가지 클래스에 대해 설명하겠습니다. 나중에 이해하기 쉽도록. 그들의 책임은 무엇입니까? QRCodeGenerator: QRCodeData의 QR 코드 중간에 있는 Matrix인 QR 코드에 저장된 데이터 개체를 지정된 방식으로 생성하는 데 사용됩니다. 그런 다음 QRCode는 QRCodeData를 가져와 QR 코드
최근에 QR코드 관련 일을 하다보니 QR코드를 접하게 되어서 써보게 됐으니 써봐야겠어요
사실 관련 글이 정말 셀 수 없을 정도로 많아요 QR 코드, 그리고 그 중 다수는 정말 좋습니다. 하지만 다른 사람들이 한다고 해서 학습하고 기록할 가치가 없다는 의미는 아닙니다. 조만간 일어날 일
a) 먼저 qrcoderbagc)를 소개한 후 여기에 chestnut_qrcode
b)라는 이름의 새 카테고리 라이브러리를 만듭니다. nuget을 통해) 성공적인 설치를 확인하세요) QRCoder의 참조가 참조
e)에 나타납니다. 이때 소개 작업은 완료되었지만
Encoder.cs를 쉽게 생성할 수 있습니다.
QR 코드 생성 클래스
1. 준비먼저 이야기해 보겠습니다. QR 코드를 생성하는 데 필요한 세 가지 클래스를 살펴보겠습니다. 무엇 그들의 책임
은 무엇인가요?QRCodeGenerator静态公共类
: QR 코드에 저장된 데이터 개체를 지정된 방식으로 생성하는 데 사용됩니다. 즉, QR 코드 중간에
가
QRCodeData2. 인코딩
전체 코드는 다음과 같습니다.
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 준비
여기 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# 튜토리얼] C# 데이터 유형
위 내용은 C#을 사용하여 QR 코드를 생성하는 최신 솔루션, 자세한 설명 및 예제(QRCoder)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!