日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信开发 -- 二维码生成

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信开发 -- 二维码生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微信開發 – 二維碼生成

生成二維碼無非就是將一段字符串內容以某種特定的方式進行編碼, 最終得到一個圖片。 這里使用 C# 生成二維碼我用到了 QrCode.Net 這個 Nuget 包。

這里我們創建一個名為 QrCodeGenerate 的 Web 程序, 創建一個 QrCodeUtils 的工具類庫,在 Nuget 包管理控制臺中鍵入:

Install-Package QrCode.Net

安裝好 QrCode.Net 包之后,創建一個 QrCodeUtil.cs 工具類, 添加靜態方法:

/// <summary> /// 生成二維碼 /// </summary> /// <param name="strContent">待編碼內容</param> /// <param name="errorCorrect">錯誤校正等級</param> /// <param name="ms">內存流</param> /// <param name="moduleSize">單元尺寸</param> /// <param name="quietZones">空白區域</param> /// <returns>是否創建成功</returns> public static bool Create(string strContent, string errorCorrect, MemoryStream ms, int moduleSize = 12, QuietZoneModules quietZones = QuietZoneModules.Two) {var encoder = new QrEncoder();encoder.ErrorCorrectionLevel = errorCorrect == "L" ? ErrorCorrectionLevel.L :errorCorrect == "M" ? ErrorCorrectionLevel.M :errorCorrect == "Q" ? ErrorCorrectionLevel.Q : ErrorCorrectionLevel.H;QrCode qr;//對內容進行編碼,并保存生成的矩陣 Matrixif (encoder.TryEncode(strContent, out qr)) {var render = new GraphicsRenderer(new FixedModuleSize(moduleSize, quietZones));render.WriteToStream(qr.Matrix, ImageFormat.Png, ms);return true;}else{return false;} }

然后在我們的 Web 應用程序中添加 QrCodeController , 針對于 GET 方式和 POST 方式分別創建生成二維碼的 Action 為:

/// <summary> /// 生成二維碼(支持中文) /// </summary> /// <param name="strContent">待編碼內容</param> /// <returns></returns> [HttpGet] public ActionResult GenerateByGet(string strContent) {try{using (var memoryStream = new MemoryStream()) {string errorCorrect = "L";QrCodeGenerater.Create(strContent, errorCorrect, memoryStream);return File(memoryStream.GetBuffer(), "image/jpeg");}}catch (Exception){return null;} }/// <summary> /// 生成二維碼(支持中文) /// </summary> /// <param name="strContent">待編碼內容</param> /// <returns></returns> [HttpPost] public ActionResult GenerateByPost(string strContent) {try{using (var memoryStream = new MemoryStream()){string errorCorrect = "L";QrCodeGenerater.Create(strContent, errorCorrect, memoryStream);return File(memoryStream.GetBuffer(), "image/jpeg");}}catch (Exception){return null;} }

作用都是一樣, 都是生成二維碼, 參數便是需要進行編碼的內容, 這里我對路由做了一點點調整:

public static void RegisterRoutes(RouteCollection routes) {routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute(name: "Default",url: "{controller}/{action}/{strContent}",defaults: new { controller = "QrCode", action = "GenerateByGet", strContent = "二維碼生成" }); }

啟動項目測試:

輸入路由路由地址(支持中文): http://localhost:40800/QrCode/GenerateByGet/二維碼生成Sample~~~

生成的二維碼:

源碼將會在評論中給出

總結

以上是生活随笔為你收集整理的微信开发 -- 二维码生成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。