C# 生成二維碼 QRCoder


最近項目上有個需求,需要將某個文件的下載地址生成二維碼,並展示到網頁上.

目前網上生成二維碼的方法有好幾種,本文將介紹【QRCoder】生成二維碼的方式

 

一、首先通過VS中的【NUGET】下載並引用QRCoder.dll

  使用VS打開項目,項目->右鍵->管理Nuget程序包,然后選擇聯機,在輸入框中輸入QRCoder,如下圖所示:

 

二、編寫生成二維碼代碼,並返回至頁面

   1、WebFrom (項目框架)

   2、功能場景:客戶端瀏覽器使用jQuery.ajax 請求服務端返回二維碼,服務端通過一般處理程序Handler.ashx 處理客戶端請求並返回二維碼至客戶端

// 生成二維碼的內容
string strCode = "http://www.walys.com";
QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.Q);
QRCode qrcode = new QRCode(qrCodeData);

// qrcode.GetGraphic 方法可參考最下發“補充說明”
Bitmap qrCodeImage = qrcode.GetGraphic(5,Color.Black,Color.White,null,15,6,false); 
MemoryStream ms = new MemoryStream();
qrCodeImage.Save(ms, ImageFormat.Jpeg);

// 如果想保存圖片 可使用  qrCodeImage.Save(filePath);

// 響應類型
context.Response.ContentType = "image/Jpeg";
//輸出字符流
context.Response.BinaryWrite(ms.ToArray());

以上為QRCoder生成二維碼的核心代碼

 

補充說明:QRCode.GetGraphic方法參數說明 

Bitmap qrCodeImage = qrcode.GetGraphic(5,Color.Black,Color.White,null,15,6,false); 
 /* GetGraphic方法參數說明
                 public Bitmap GetGraphic(int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)
             * 
                 int pixelsPerModule:生成二維碼圖片的像素大小 ,我這里設置的是5 
             * 
                 Color darkColor:暗色   一般設置為Color.Black 黑色
             * 
                 Color lightColor:亮色   一般設置為Color.White  白色
             * 
                 Bitmap icon :二維碼 水印圖標 例如:Bitmap icon = new Bitmap(context.Server.MapPath("~/images/zs.png")); 默認為NULL ,加上這個二維碼中間會顯示一個圖標
             * 
                 int iconSizePercent: 水印圖標的大小比例 ,可根據自己的喜好設置 
             * 
                 int iconBorderWidth: 水印圖標的邊框
             * 
                 bool drawQuietZones:靜止區,位於二維碼某一邊的空白邊界,用來阻止讀者獲取與正在瀏覽的二維碼無關的信息 即是否繪畫二維碼的空白邊框區域 默認為true
   */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM