C# 實現二維碼
必須的引入的類庫
using System;
using System.Drawing;
using System.Text;
using ThoughtWorks.QRCode.Codec; // 第三方類庫,C#類庫中不存在
採用面向對象的方式調用生成方法/函數
/// <summary>
/// 生成二維碼
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btn_CreateQRCode_Click(object sender, EventArgs e)
{
// str 二維碼的內容
CreateQRImg(str);
}
核心代碼
調用 ThoughtWorks.QRCode.dll
類庫中二維碼的實現方式,實現常見的二維碼
註釋比較清楚不做過多贅述
/// <summary>
/// 生成並保存二維碼圖片的方法
/// </summary>
/// <param name="str">輸入的內容</param>
private void CreateQRImg(string str)
{
Bitmap bt;
string enCodeString = str;
//生成設置編碼實例
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//設置二維碼的規模 默認 4
qrCodeEncoder.QRCodeScale = 4;
//設置二維碼的版本 默認 7
qrCodeEncoder.QRCodeVersion = 7;
//設置錯誤檢驗級別 默認爲中等
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
//生成二維碼圖片
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
//二維碼圖片名稱
string filename = DateTime.Now.ToString("[名字最好用時間防重]");
//保存二維碼圖片在photos路徑下
bt.Save(Server.MapPath("~/photos/") + filename + ".jpg");
//圖片控件要顯示的二維碼圖片路徑
this.img_QRImag.ImageUrl = "~/photos/" + filename + ".jpg";
}
- 在這裏我使用的是,獲取鍵盤的輸入值做演示
- 實際應用中
str
應該是程序自動生成值 ThoughtWorks.QRCode.dll
類庫是要自己下載的 NuGet下載- 項目開源可自行下載
ps: 二維碼一般爲圖片,所以我們的主程序應該爲 C/S 或 B/S 應用