跳至頁尾內容
使用 IRONQR

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比)

C# 中的二維碼生成

在 C# 應用程式中建立二維碼是開發人員的常見需求,特別是對於涉及產品識別、票務或輕鬆共享 URL 和其他資料的應用程式。 C# 中有多個可用於產生二維碼的函式庫。 兩個值得關注的選擇是QRCoderIronQR 。 本文將探討這兩個函式庫,比較它們的功能、易用性、效能以及其他與使用 .NET 6 的開發人員相關的因素。本文將深入比較這些函式庫,考察它們的功能、易用性、許可等,並提供程式碼範例來說明它們的用法。

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比)

  1. 建立一個新的 Visual Studio 專案來產生二維碼
  2. 安裝 QRCoder 和 IronQR NuGet 套件以進行比較
  3. 使用 QRCoder 和 IronQR 建立二維碼
  4. 使用 QRCoder 和 IronQR 進行自訂選項

QR 圖碼

QRCoder是一個以 C# 編寫的開源程式庫,它提供了 QR 碼實現,讓您在任何 .NET 應用程式中產生符合 ISO/IEC 18004 定義的 QR 碼。 這是一個輕量級且易於使用的函式庫,不依賴其他函式庫或網路協定棧。

以下是QRCoder的主要特點和優點:

1. 易用性

C# QRCoder提供了一個簡單直覺的 API,讓開發人員能夠以最少的努力輕鬆產生 QR 碼/QR 碼文字。 它的簡易性使得各種技能等級的開發人員都能快速地將二維碼產生功能整合到他們的專案中。

2. 豐富的自訂選項

QRCoder 的一個突出特點是能夠根據特定要求自訂二維碼。 開發者可以調整糾錯等級、大小、顏色等參數,甚至可以在二維碼中嵌入徽標或圖像。

3. 多種編碼格式

QRCoder 支援多種編碼格式,使開發人員能夠將不同類型的資料編碼到 QR 碼中。 無論是純文字、URL、聯絡資訊或 Wi-Fi 憑證,QRCoder 都能處理各種資料格式。

4. 高品質輸出

C# QRCoder 產生的二維碼品質很高,可確保在不同裝置和掃描條件下具有良好的可讀性和可靠性。 這種可靠性對於以二維碼作為物理互動和數位互動之間橋樑的應用至關重要。

5. 開源和積極開發

C# QRCoder 是一個開源項目,允許開發人員為其開發做出貢獻,並確保持續改進和更新。 這種積極的社區參與促進了創新,並確保圖書館在不斷發展的技術環境中保持相關性。

IronQR

IronQR是一個功能強大的 C# 二維碼庫,由Iron Software開發和維護。 它允許 C# 軟體工程師在 .NET 應用程式和網站中檢測、讀取和建立二維碼。 以下是IronQR的一些主要特點:

二維碼生成

IronQR 可實現高度可自訂的二維碼產生。 您可以建立具有各種選項的二維碼,例如調整大小、邊距、邊框和重新著色。

using IronQr;
using IronSoftware.Drawing;

public class Program
{
    public static void Main()
    {
        // Prepare a QR Code object
        QrCode theQrGen = QrWriter.Write("Awesome IronQR");
        // Save QR Code to memory
        AnyBitmap myQrImage = theQrGen.Save();
        // Save QR Code image to disk
        myQrImage.SaveAs("awesome.png");
    }
}
using IronQr;
using IronSoftware.Drawing;

public class Program
{
    public static void Main()
    {
        // Prepare a QR Code object
        QrCode theQrGen = QrWriter.Write("Awesome IronQR");
        // Save QR Code to memory
        AnyBitmap myQrImage = theQrGen.Save();
        // Save QR Code image to disk
        myQrImage.SaveAs("awesome.png");
    }
}
$vbLabelText   $csharpLabel

QR 圖碼讀取

IronQR採用先進的機器學習模型進行二維碼偵測。 此型號可確保準確快速地讀取二維碼。 IronQR 支援讀取各種影像格式的二維碼,包括 JPG、PNG、SVG、bmp 以及 gif 和 tiff 等多頁影像。

using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // Read QR code
        var inputBmp = AnyBitmap.FromFile("awesome.png");
        // Load the image into QrImageInput
        QrImageInput imageInput = new QrImageInput(inputBmp);
        // Create the QR Reader object
        QrReader reader = new QrReader();
        // Read the Input and get all embedded QR Codes
        IEnumerable<QrResult> results = reader.Read(imageInput);
    }
}
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // Read QR code
        var inputBmp = AnyBitmap.FromFile("awesome.png");
        // Load the image into QrImageInput
        QrImageInput imageInput = new QrImageInput(inputBmp);
        // Create the QR Reader object
        QrReader reader = new QrReader();
        // Read the Input and get all embedded QR Codes
        IEnumerable<QrResult> results = reader.Read(imageInput);
    }
}
$vbLabelText   $csharpLabel

跨平台相容性

  1. 桌面:適用於 Windows 桌面應用程式(WPF 和 MAUI)。
  2. 行動端:相容於 Xamarin 和 MAUI。
  3. Web:支援 Blazor 和 WebForms。
  4. 控制台:應用程式和庫環境。
  5. 雲端運算:Docker、Azure 和 AWS。

資料編碼

您可以在二維碼中編碼各種類型的數據,包括文字、網址、位元組和數字。

錯誤糾正

IronQR提供詳細的錯誤訊息和自訂糾錯選項。

IronQR 因其可靠性和易用性而受到全球數百萬用戶的信賴,深受全球工程師的信賴。 要開始使用 IronQR,您可以透過NuGet安裝它。

步驟 1:建立一個新的 Visual Studio 專案來產生二維碼

要開始編寫程式碼,讓我們建立一個Visual Studio專案。 開啟 Microsoft Visual Studio 2022,然後選擇"建立新專案"選項。

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 1 - 開啟 Visual Studio 並點擊"建立新專案"選項

從模板清單中選擇控制台應用程式模板

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 2 - 選擇專案類型為"控制台應用程式"。

然後提供專案名稱和解決方案名稱。 選擇專案文件的儲存路徑

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 3 - 透過指定項目名稱、位置和解決方案名稱來配置項目,然後按一下"下一步"。

選擇所需的 .NET 版本。 在撰寫本文時,我將使用最新的 .NET 8 框架。

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 比較):圖 4 - 選擇最新的 .NET Framework 版本,然後按一下"建立"按鈕。

點擊創建按鈕後,專案即被創建並可以開始開發。

步驟 2:安裝 QRCoder 和 IronQR NuGet 套件

可以使用 Visual Studio NuGet 套件管理器安裝QRCoder NuGet 套件,如下圖所示。

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 5 - 使用 NuGet 套件管理器的搜尋列搜尋"QRCoder"來安裝 QRCoder,然後選擇專案並點擊"安裝"按鈕。

或使用以下命令從 NuGet 套件管理器控制台安裝它

dotnet add package QRCoder --version 1.4.3

QRCoder NuGet 套件可在此處從 NuGet 網站取得。

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 6 - QRCoder NuGet 套件

IronQR也可以使用 Visual Studio NuGet 套件管理器進行類似安裝,如下所示。

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 7 - 使用 NuGet 套件管理器的搜尋列搜尋"IronQR",然後選擇專案並按一下"安裝"按鈕,即可透過管理解決方案的 NuGet 套件來安裝 IronQR。

此外,也可以從 NuGet 套件管理器控制台使用下列命令

dotnet add package IronQR --version 2024.4.1

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 8 - IronQR NuGet 套件

步驟 3:使用 QRCoder 和 IronQR 建立二維碼

這兩個函式庫都只需要簡單的程式碼就能創造二維碼,我們來看看吧。

QR 圖碼

以下程式碼展示如何使用 QRCoder 產生我們的第一個二維碼。

using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {
                // Generate the QR code's graphic and store it in a byte array
                byte[] qrCodeImage = qrCode.GetGraphic(20);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {
                // Generate the QR code's graphic and store it in a byte array
                byte[] qrCodeImage = qrCode.GetGraphic(20);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

程式碼解釋

  1. 初始化QRCodeGenerator並呼叫CreateQrCode方法產生 QR 碼資料。
  2. 使用BitmapByteQRCode類,透過GetGraphic方法從 QR 碼資料產生位元組數組。
  3. 使用Image.FromStream將位元組陣列轉換為影像。
  4. 將產生的影像儲存到磁碟。

輸出

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 比較):圖 9 - 輸出:使用 QRCoder 函式庫產生的二維碼影像。

IronQR

以下程式碼展示如何使用 IronQR 產生二維碼:

using IronQr;
using IronSoftware.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Prepare a QR Code object
            QrCode theQrGen = QrWriter.Write("Awesome IronQR");
            // Save QR Code to memory
            AnyBitmap myQrImage = theQrGen.Save();
            // Save QR Code image to disk
            myQrImage.SaveAs("awesome.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Prepare a QR Code object
            QrCode theQrGen = QrWriter.Write("Awesome IronQR");
            // Save QR Code to memory
            AnyBitmap myQrImage = theQrGen.Save();
            // Save QR Code image to disk
            myQrImage.SaveAs("awesome.png");
        }
    }
}
$vbLabelText   $csharpLabel

正如你所看到的,程式碼量已經有所不同。 IronQR碼產生所需的程式碼更少。

程式碼解釋

  1. 使用QrWriter.Write方法建立二維碼,並傳遞所需的內容。
  2. 使用Save方法將二維碼儲存到記憶體中。
  3. 使用SaveAs將二維碼影像儲存到磁碟。

輸出

由於我使用的是庫的試用版,因此輸出結果帶有 IronQR 浮水印。 購買正版軟體後,此功能將會移除。

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 10 - 輸出:使用 IronQR 產生的二維碼影像

步驟 4:使用 QRCoder 和 IronQR 進行自訂選項

這兩個庫都支援自訂選項。 讓我們來看看有哪些可行的方案。

我們可以在QRCoder中設定二維碼顏色,如下所示:

using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {                
                // Generate the QR code's graphic, specifying foreground and background colors
                byte[] qrCodeImage = qrCode.GetGraphic(20, Color.Red, Color.Green);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {                
                // Generate the QR code's graphic, specifying foreground and background colors
                byte[] qrCodeImage = qrCode.GetGraphic(20, Color.Red, Color.Green);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

程式碼解釋

  1. 初始化QRCodeGenerator並呼叫CreateQrCode方法產生 QR 碼資料。
  2. 使用BitmapByteQRCode類,透過GetGraphic方法從 QR 碼資料產生位元組數組,並指定前景色(紅色)和背景色(綠色)。
  3. 使用Image.FromStream將位元組陣列轉換為影像。
  4. 將產生的影像儲存到磁碟。

輸出

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 11 - 輸出:使用 QRCoder 的自訂功能產生的彩色二維碼影像。

我們可以使用以下程式碼為IronQR二維碼產生設定顏色:

using IronQr;
using IronSoftware.Drawing;
using System.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Set options
            QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);

            // Create QR
            QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);

            // Style options
            AnyBitmap logoBmp = new AnyBitmap("logo.png");
            QrStyleOptions style = new QrStyleOptions
            {
                BackgroundColor = Color.Aqua,
                Dimensions = 300, // px
                Margins = 10, // px
                Color = Color.Red,
                Logo = new QrLogo
                {
                    Bitmap = logoBmp,
                    Width = 100,
                    Height = 100,
                    CornerRadius = 2
                }
            };

            // Save QR Code
            AnyBitmap qrImage = myQr.Save(style);
            // Save QR Code to local disk
            qrImage.SaveAs("advancedQr.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using System.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Set options
            QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);

            // Create QR
            QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);

            // Style options
            AnyBitmap logoBmp = new AnyBitmap("logo.png");
            QrStyleOptions style = new QrStyleOptions
            {
                BackgroundColor = Color.Aqua,
                Dimensions = 300, // px
                Margins = 10, // px
                Color = Color.Red,
                Logo = new QrLogo
                {
                    Bitmap = logoBmp,
                    Width = 100,
                    Height = 100,
                    CornerRadius = 2
                }
            };

            // Save QR Code
            AnyBitmap qrImage = myQr.Save(style);
            // Save QR Code to local disk
            qrImage.SaveAs("advancedQr.png");
        }
    }
}
$vbLabelText   $csharpLabel

IronQR提供了許多自訂選項。 在上面的程式中,我們嘗試自訂背景顏色、二維碼顏色和邊距。 我們還可以設定尺寸。

程式碼解釋

  1. 首先,建立QrOptions物件來設定糾錯等級。
  2. 使用QrWriter.Write方法準備二維碼。
  3. 使用QrStyleOptions設定樣式選項。
  4. 設定二維碼的背景顏色、前景色、邊距、尺寸,甚至可以添加徽標。
  5. 將二維碼影像儲存到本機磁碟。

輸出

如何在 .NET 6 中使用 QRCoder 產生二維碼(與 IronQR 相比):圖 12 - 輸出:使用 IronQR 及其自訂功能產生的彩色二維碼影像。

授權

QRCoder是一個基於 MIT 許可證的軟體包,並在社區的幫助下開發。 這個軟體包適合小預算項目。 用戶需要等待社群解決問題,或者可以自行修復程式碼並將其推送到 Git 儲存庫,前提是拉取請求已獲得批准。

IronQR需要許可證。 它得到了Iron Software的支持。

可以取得IronQR試用許可證。 需要將取得到的金鑰放入 appSettings.json 檔案中的以下位置:

{
   "IronQR.License.LicenseKey": "myKey"
}

結論

選擇 C# QRCoder還是IronQR最終取決於您專案的特定要求。 如果您需要具有大量自訂選項的免費開源二維碼生成庫,那麼 C# QRCoder 可能是您的首選,因為它簡單易用且具有廣泛的自訂選項。

如果您需要企業級庫,它不僅支援產生可自訂選項的二維碼,還支援讀取二維碼,那麼IronQR將是您的最佳選擇。借助 IronQR 程式庫及其諸多優勢,以及Iron Software提供的支援功能,開發人員可以輕鬆無憂地編寫企業級應用程式。

常見問題解答

如何在C#中產生二維碼?

您可以使用 QRCoder 和 IronQR 等函式庫在 C# 中產生二維碼。 QRCoder 是開源的,並提供廣泛的自訂功能,而 IronQR 提供高級功能和跨平台支持,非常適合企業級應用程式。

在 .NET 6 專案中使用 QRCoder 有哪些好處?

QRCoder 易於使用,擁有豐富的自訂選項,並支援多種編碼格式,因此非常適合 .NET 6 專案。此外,它採用 MIT 許可證,免費提供,也使其成為預算有限的專案的理想選擇。

如何使用IronQR自訂二維碼?

IronQR 允許開發者透過調整背景顏色、二維碼顏色、邊距、尺寸等參數來客製化二維碼,甚至添加徽標來增強二維碼的外觀。

IronQR 在跨平台應用上的優勢是什麼?

IronQR 支援跨平台應用程序,包括桌面(WPF 和 MAUI)、行動裝置(Xamarin 和 MAUI)、Web(Blazor 和 WebForms)、控制台應用程式以及 Docker、Azure 和 AWS 等雲端環境,使其成為滿足多樣化開發需求的理想選擇。

在 Visual Studio 中設定二維碼產生專案需要哪些步驟?

要在 Visual Studio 中設定二維碼產生項目,您需要安裝 QRCoder 或 IronQR 所需的 NuGet 套件,具體取決於您的選擇。本文提供了逐步說明和程式碼範例,引導您完成整個過程。

IronQR是如何增強二維碼糾錯功能的?

IronQR 透過提供詳細的糾錯選項來增強二維碼糾錯功能,即使二維碼損壞或部分遮擋,也能確保準確讀取。這使其在關鍵應用中具有很高的可靠性。

IronQR有哪些授權許可選項?

IronQR 需要商業許可,由 Iron Software 提供支持,並提供試用許可用於評估。這確保企業級專案能夠獲得強大的支援和功能。

對於一個簡單的二維碼項目,我應該選擇哪個函式庫?

對於簡單的二維碼項目,建議使用 QRCoder,因為它簡單易用、經濟高效,而且是一個基於 MIT 授權的開源程式庫。

IronQR 能否讀取各種影像格式的二維碼?

是的,IronQR 可以讀取各種影像格式的二維碼,並利用先進的機器學習模型確保在不同平台上快速且準確地讀取二維碼。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。