前言
在日常開發需求中,生成二維碼以分享文本內容或跳轉至指定網站鏈接等場景是比較常見的。今天大姚給大家分享一款.NET開源(MIT License)、免費、簡單易用、功能強大的二維碼生成類庫:QrCodeGenerator。
項目特點
- 跨平臺兼容性: 支持.NET Standard 2.0及更高版本,因此可以運行在大多數現代.NET平臺上,包括.NET Core、.NET Framework、Mono等,同時也支持.NET 6在所有平臺上的運行。
- 豐富的輸出格式: 提供了多種輸出格式,包括QR符號的原始模塊/像素、SVG和XAML路徑、BMP位圖等。
- 高效的文本編碼: 對數字和特殊字母數字文本進行編碼,所占用的空間小于一般文本。
- 靈活的參數設置: 允許開發者指定掩碼模式、錯誤糾正級別以及數據段列表等參數,提供了高度的靈活性和定制性。
- 使用示例代碼豐富: 項目源碼提供了在WinForms、WPF、WinUI、ASP.NET Core等環境中使用示例代碼。
圖像生成擴展
從.NET 6開始,System.Drawing只支持Windows操作系統,無法兼容跨平臺。因此ToBitmap()
已被刪除,現在以方法擴展的形式提供了三個選項。
選擇下面的一個映像庫,將NuGet依賴項添加到項目中,并且將相應的QrCodeBitmapExtensions.cs文件復制到項目中。
控制臺應用中快速使用
創建控制臺應用
創建名為:QrCodeGeneratorExercise
的控制臺應用!
NuGet包安裝
在NuGet中搜索:Net.Codecrete.QrCodeGenerator
和SkiaSharp
類庫安裝。
生成二維碼并保存為png
var test1 = QrCode.EncodeText("追逐時光者!!!", QrCode.Ecc.Medium);
test1.SaveAsPng("test1-qr-code.png", 10, 3);
生成帶顏色的二維碼并保存為png
var test2 = QrCode.EncodeText("追逐時光者!!!", QrCode.Ecc.High);
test2.SaveAsPng("test2-qr-code.png", 12, 4,
foreground: SKColor.Parse("#628bb5"),
background: SKColor.Parse("#ffffff"));
生成二維碼并保存為svg
var test3 = QrCode.EncodeText("追逐時光者!!!", QrCode.Ecc.Medium);
var svg = test3.ToSvgString(4);
File.WriteAllText("test3-qr-code.svg", svg, Encoding.UTF8);
生成帶顏色的二維碼并保存為svg
var test4 = QrCode.EncodeText("追逐時光者!!!", QrCode.Ecc.Medium);
var svg1 = test4.ToSvgString(4, "#98b2cd", "#ffffff");
File.WriteAllText("test4-qr-code.svg", svg1, Encoding.UTF8);
項目源代碼
QrCodeGenerator提供了豐富的示例代碼,展示了如何在WinForms、WPF、WinUI、ASP.NET Core等環境中使用。
WinForms運行效果
打開Demo-WinForms
項目運行:
WPF運行效果
打開Demo-WindowsPresentationFoundation
項目運行:
ASP.NET Core運行效果
打開ASP.NET-Core
項目運行:
項目源碼地址
更多項目實用功能和特性歡迎前往項目開源地址查看??,別忘了給項目一個Star支持??。
該文章在 2024/7/31 9:02:00 編輯過