最近項目上有個需求,須要將某個文件的下載地址生成二維碼,並展現到網頁上.ajax
目前網上生成二維碼的方法有好幾種,本文將介紹【QRCoder】生成二維碼的方式瀏覽器
1、首先經過VS中的【NUGET】下載並引用QRCoder.dll框架
使用VS打開項目,項目->右鍵->管理Nuget程序包,而後選擇聯機,在輸入框中輸入QRCoder,以下圖所示:ui
2、編寫生成二維碼代碼,並返回至頁面spa
一、WebFrom (項目框架)code
二、功能場景:客戶端瀏覽器使用jQuery.ajax 請求服務端返回二維碼,服務端經過通常處理程序Handler.ashx 處理客戶端請求並返回二維碼至客戶端orm
// 生成二維碼的內容 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生成二維碼的核心代碼blog
補充說明: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 */