基于C# Winform的二維碼(QR Code)生成程序
二維碼即2-Dimensional Bar Code,二維條碼的種類很多,常見的二維碼格式有:PDF417碼、QR碼、漢信碼、顏色條碼、quick mark code、data matrix。與傳統的條形碼相比,可以存儲更多的信息,二維碼本質上是個密碼算法,本文描述的是最常見的QR碼(QR Code)的生成方式,QR碼的結構如下圖所示。
二維碼結構
目標開發一個C# Winform應用程序:
1)可以在界面中輸入任意文本內容,點擊生成按鈕可以將文本內容轉換為二維碼展示在用戶界面中;
2)點擊保存按鈕可以將二維碼以圖片的形式保存在指定的路徑下。
基于 C# Winform 的 QR 碼生成程序- 創建Winform .net framework項目,通過Nuget包管理器安裝QRCoder庫,如下圖所示。
通過Nuget包管理器安裝QRCoder庫
安裝QRCoder庫
- 搭建 Winform 用戶界面,如下圖所示,其中一個richText文本框用于輸入文本信息,該文本信息用于生成二維碼,一個picturebox控件用于展示生成的二維碼,兩個Button控件用于觸發二維碼的生成和保存。
Winform 用戶界面
- 編寫程序代碼,代碼源碼如下:
using QRCoder;using System;using System.Data;using System.Drawing;using System.Windows.Forms;namespace QRCode_Winform{ public partial class Form1 : Form { public Form1() { InitializeComponent(); // 設置picQRCode對象圖片自適應 picQRCode.BackgroundImageLayout = ImageLayout.Stretch; picQRCode.SizeMode=PictureBoxSizeMode.StretchImage; } private void btnCreate_Click(object sender, EventArgs e) { // 創建QRCodeGenerator對象 QRCodeGenerator qrGenerator = new QRCodeGenerator(); // 創建QCodeRData對象 QRCodeData qrData = qrGenerator.CreateQrCode(txtText.Text, QRCodeGenerator.ECCLevel.M); // 創建QRCode對象 QRCode qrCode = new QRCode(qrData); // 將QRCode對象轉換為BitMap對象 Bitmap qrCodeImage= qrCode.GetGraphic(20); // 將Bitmap對象轉換為Image對象 // Image img= Image.FromHbitmap(qrCodeImage.GetHbitmap()); // 設置picQRCode對象的數據源 //picQRCode.Image = img; picQRCode.Image = qrCodeImage; picQRCode.Show(); picQRCode.Refresh(); } private void btnSave_Click(object sender, EventArgs e) { SaveFileDialog imgFilePath = new SaveFileDialog(); imgFilePath.Title = "二維碼圖片保存"; imgFilePath.FileName = "QRCode"; imgFilePath.Filter = "圖片文件|*.jpg;*.png;*.jpeg;*.bmp"; if (imgFilePath.ShowDialog() == DialogResult.OK) { string fileName = imgFilePath.FileName.ToString(); // 獲取圖片后綴 string fileExtName = fileName.Substring(fileName.LastIndexOf(".") + 1).ToString(); System.Drawing.Imaging.ImageFormat imgformat; if (fileExtName != "") { switch (fileExtName) { case "jpg": imgformat = System.Drawing.Imaging.ImageFormat.Jpeg; break; case "bmp": imgformat = System.Drawing.Imaging.ImageFormat.Bmp; break; case "png": imgformat = System.Drawing.Imaging.ImageFormat.Png; break; default: imgformat = System.Drawing.Imaging.ImageFormat.Jpeg; break; } // 保存圖片 picQRCode.Image.Save(fileName, imgformat); } } } }}
- 程序運行效果如下圖所示。
二維碼生成程序運行效果
- 點擊Save按鈕可對生成的二維碼圖片進行保存。
借助于QRCoder庫,可以輕松實現QR碼的生成。
-
Hidros空調廠家保養加氟(如何正確進行Hidros空調廠家的保養和加氟服務?)
2024-08-25
-
CITEC空調廠家售后網點(如何找到CITEC空調廠家的官方售后維修服務網點?)
2024-08-25
-
有圖像無伴音故障部件(解決有圖像無伴音故障的部件問題:一步步排查與修復
2024-08-25
-
五洲空調售后維修網點地址(如何找到五洲空調售后維修網點的詳細地址?)
2024-08-25
-
山特空調廠家維修服務部(如何獲取山特空調廠家維修服務部的詳細信息和優質
2024-08-25