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 應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章