簡介: 二維碼又稱二維條碼,常見的二維碼為QR Code,QR全稱Quick Response,是一個近幾年來移動設備上超流行的一種編碼方式,它比傳統的Bar Code條形碼能存更多的信息,也能表示更多的數據類型。 步驟說明: 第一步要做的就是添加對 ThoughtWorks.QRCode 的引用。 ...
簡介:
二維碼又稱二維條碼,常見的二維碼為QR Code,QR全稱Quick Response,是一個近幾年來移動設備上超流行的一種編碼方式,它比傳統的Bar Code條形碼能存更多的信息,也能表示更多的數據類型。
步驟說明:
第一步要做的就是添加對 ThoughtWorks.QRCode 的引用。添加引用步驟:右鍵引用——》管理 NuGet 程式包——》瀏覽中搜索 QRCode ——》安裝 ThoughtWorks.QRCode 程式包
下文為Controller控制器的後端代碼,輸入所需展示的內容並返回一個base64的字元串用於前端內容展示...
1 [HttpPost] 2 /// <summary> 3 /// 生成二維碼 4 /// </summary> 5 /// <param name="qrCodeContent">要編碼的內容</param> 6 /// <returns>返回二維碼base64用於前端展示</returns> 7 public string QRCodeEncoderUtil(string qrCodeContent) 8 { 9 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); 10 qrCodeEncoder.QRCodeScale = 5; 11 qrCodeEncoder.QRCodeVersion = 0; 12 Bitmap img = qrCodeEncoder.Encode(qrCodeContent, Encoding.UTF8);//指定utf-8編碼, 支持中文 13 string strbaser64 = ""; 14 try 15 { 16 using (MemoryStream ms = new MemoryStream()) 17 { 18 img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); 19 byte[] arr = new byte[ms.Length]; 20 ms.Position = 0; 21 ms.Read(arr, 0, (int)ms.Length); 22 ms.Close(); 23 strbaser64 = Convert.ToBase64String(arr); 24 } 25 return strbaser64; 26 } 27 catch (Exception) 28 { 29 throw new Exception("Something wrong during convert!"); 30 } 31 }Controller內容
下文為Web視圖的前端代碼,因只是一個功能示例,未對樣式進行調整...
1 <script src="~/Scripts/jquery-1.10.2.min.js"></script> 2 3 <div> 4 <div><span>生成內容:</span><input placeholder="請輸入需要生成的文字描述..." id="EwmText" /></div> 5 <button onclick="GetErWeiMa()"> 6 生成二維碼 7 </button> 8 <img id="ErWeiMaImg" style="width:120px;height:120px"> 9 </div> 10 11 <script> 12 function GetErWeiMa() { 13 $.post("/Index/QRCodeEncoderUtil?qrCodeContent=" + encodeURIComponent($("#EwmText").val()), function (data) { 14 if (data != "") { 15 $("#ErWeiMaImg").attr("src", "data:image/jgp;base64," + data) 16 } 17 else { 18 alert("生成失敗"); 19 } 20 }) 21 } 22 </script>View代碼
如果您已經按照要求完成代碼,則會出現下圖效果,輸入所需生成內容,前端會展示對應的二維碼。註意input輸入的內容需要encodeURIComponent,否則會截斷特殊字元...