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