安裝
先使用 NuGet 安裝 QRCoder 套件,或是使用 .NET CLI 執行以下指令安裝
dotnet add package QRCoder
基本程式碼
在 WinForms 專案中可以直接使用下面的程式碼就看到 QR Code
// 產生 QR Code
QRCodeGenerator qrGenerator = new ();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("https://www.ruyut.com/", QRCodeGenerator.ECCLevel.L);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
// 顯示
PictureBox pictureBox = new PictureBox();
pictureBox.Image = qrCodeImage;
pictureBox.SizeMode = PictureBoxSizeMode.AutoSize;
this.Controls.Add(pictureBox);
其中 ECCLevel 代表容錯等級,分別為:
- ECCLevel.L: 容許大約 7% 的損壞
- ECCLevel.M: 容許大約 15% 的損壞
- ECCLevel.Q: 容許大約 25% 的損壞
- ECCLevel.H: 容許大約 30% 的損壞
變更顏色
可以變更 QRCode 前景和背景顏色:
QRCodeGenerator qrGenerator = new();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("https://www.ruyut.com/", QRCodeGenerator.ECCLevel.L);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20, Color.FromArgb(255, 111, 0), Color.FromArgb(43, 43, 43), true);
範例輸出:
中心加上圖片
要加上圖片也是非常簡單:
QRCodeGenerator qrGenerator = new();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("https://www.ruyut.com/", QRCodeGenerator.ECCLevel.L);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap bitmap = Bitmap.FromFile(@"C:\Users\ruyut\Pictures\ruyut.png") as Bitmap;
Bitmap qrCodeImage = qrCode.GetGraphic(20, Color.FromArgb(255, 111, 0), Color.FromArgb(43, 43, 43), bitmap);
QRCoder 還支援產生郵件、位置、加密貨幣收款地址、wifi 密碼用的 QRCode ,非常方便,可以去 Github 頁面查看
參考資料:
Github - codebude/QRCoder
Property: ECCLevel
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com