C# QR Code Generator for .NET

This article was translated from English: Does it need improvement?
Translated
View the article in English

珍妮佛·懷特

正如您在創建條碼入門教程中所讀到的,使用IronBarcode創建、設計和導出條碼為圖像非常簡單,通常可以通過一行程式碼完成。

在此範例中,我們將更深入地探討QR碼,這種二維條碼在工業應用和零售中越來越受歡迎。

在C中安裝QR Code生成庫

C# NuGet 程式庫用于

安裝與 NuGet

Install-Package BarCode
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于

安裝與 NuGet

Install-Package BarCode
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronBarcodeNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變。

C# NuGet 程式庫用于 nuget.org/packages/BarCode/
Install-Package BarCode

請考慮安裝 IronBarcode DLL 直接下載並手動安裝到您的專案或GAC表單: IronBarCode.zip

手動安裝到您的項目中

下載DLL

在開始之前,我們需要安裝 條碼 NuGet 套件。

Install-Package BarCode

https://www.nuget.org/packages/BarCode/ 作為替代方案,該 可以下載IronBarcode.dll 並作為參考添加到您的項目中来自 [.NET 條碼 DLL].

引入命名空間

在本教程中,我們需要確保我們的類文件引用了 IronBarcode 以及一些常規的系統程序集。

using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
Imports IronBarCode
Imports System
Imports System.Drawing
Imports System.Linq
VB   C#


使用一行代碼創建QR碼

我們的第一個示例顯示瞭如何使用一些簡單的文本創建一個標準化的條碼,500像素的正方形直徑,具有中等錯誤校正。

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-1.cs
using IronBarCode;

// Generate a Simple BarCode image and save as PDF
QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png");
Imports IronBarCode

' Generate a Simple BarCode image and save as PDF
QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png")
VB   C#

錯誤更正允許我們定義在現實環境中 QR 碼的可讀性。較高的錯誤更正等級會創建具有更多像素和更高複雜度的較大 QR 碼。

C# 建立 QR Code 圖片

添加標誌

在第二個範例中,我們將查看公司希望為其 QR 碼添加標誌的使用案例,這是我們現在常見的情況。通過使用 QRCodeWriter.CreateQRCodeWithLogo 方法,在下面的程式碼範例中您可以看到這樣做是多麼簡單。

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-2.cs
using IronBarCode;
using IronSoftware.Drawing;

// You may add styling with color, logo images or branding:
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Logo will automatically be sized appropriately and snapped to the QR grid.
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");
Imports IronBarCode
Imports IronSoftware.Drawing

' You may add styling with color, logo images or branding:
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen)

' Logo will automatically be sized appropriately and snapped to the QR grid.
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png")
VB   C#

以下範例將 Visual Studio 標誌添加到條碼中。它會自動調整到合適的大小,使純代碼仍然可讀,並將該標誌對齊到 QR 碼的網格,從而看起來合適。下一行代碼將條碼上色為深綠色。然而,它不會改變標誌的顏色。

C# 創建帶有 Logo 圖像的 QR Code

保存為圖像、PDF 或 HTML

最後,我們將該 QR 碼保存為 PDF。最後一行代碼會在您的默認 PDF 瀏覽器中打開 PDF,以方便您使用。

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-3.cs
using IronBarCode;

// You may add styling with color, logo images or branding:
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen);

// Save as PDF
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");

// Also Save as HTML
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html");
Imports IronBarCode

' You may add styling with color, logo images or branding:
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)

myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen)

' Save as PDF
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf")

' Also Save as HTML
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html")
VB   C#

驗證 QR 碼

在為 QR 碼添加標誌並改變顏色時,我們希望確保我們的 QR 碼依然可讀。

通過使用 GeneratedBarcode.Verify()方法,我們可以測試我們的條碼是否仍然可讀。

在下面的程式碼範例中,我們將看到將 QR 碼變為淺藍色實際上使其不可讀。我們在程式碼中檢測到這一點,並且更喜歡深藍色。

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-4.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;

// Verifying QR Codes
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode MyVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue);

if (!MyVerifiedQR.Verify())
{
    Console.WriteLine("\t LightBlue is not dark enough to be read accurately.  Lets try DarkBlue");
    MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}
MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");

// open the barcode html file in your default web browser
System.Diagnostics.Process.Start("MyVerifiedQR.html");
Imports Microsoft.VisualBasic
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System

' Verifying QR Codes
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private MyVerifiedQR As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)

MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue)

If Not MyVerifiedQR.Verify() Then
	Console.WriteLine(vbTab & " LightBlue is not dark enough to be read accurately.  Lets try DarkBlue")
	MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue)
End If
MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html")

' open the barcode html file in your default web browser
System.Diagnostics.Process.Start("MyVerifiedQR.html")
VB   C#

最後幾行程式碼將 QR Code 匯出為不含資源的獨立 HTML 檔案,然後在預設瀏覽器中打開該 HTML 檔案。

C# 讀取和寫入 QR

讀取和寫入二進制數據

QR 碼是處理二進制數據的絕佳格式。有時候二進制數據比處理文本更節省空間或更合適。

在這個範例中,我們將從一個字串中編碼一些二進制數據,將其寫入 QR 格式的條碼中,然後將其讀回作為二進制數據的位陣列。您會注意到,這項功能在許多條碼庫中並不常見,使得 IronBarcode 在這方面獨具一格。

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-5.cs
using IronBarCode;
using System;
using System.Linq;

// Create Some Binary Data - This example equally well for Byte[] and System.IO.Stream
byte[] BinaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// WRITE QR with Binary Content
QRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png");

// READ QR with Binary Content
var MyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
if (BinaryData.SequenceEqual(MyReturnedData.BinaryValue))
{
    Console.WriteLine("\t Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Corrupted Data");
}
Imports Microsoft.VisualBasic
Imports IronBarCode
Imports System
Imports System.Linq

' Create Some Binary Data - This example equally well for Byte[] and System.IO.Stream
Private BinaryData() As Byte = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")

' WRITE QR with Binary Content
QRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png")

' READ QR with Binary Content
Dim MyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()
If BinaryData.SequenceEqual(MyReturnedData.BinaryValue) Then
	Console.WriteLine(vbTab & " Binary Data Read and Written Perfectly")
Else
	Throw New Exception("Corrupted Data")
End If
VB   C#
C# 讀取和寫入二進制數據為 QR Code

總結來說, 條碼 C# 函式庫 專門設計用於真實世界中的 QR 碼使用。不僅能快速準確地讀取 QR 碼,還允許我們設計它們、添加標誌、驗證條碼,並使用二進制數據對其進行編碼。

讀取 QR 碼

為了節省您在教程之間切換的時間,我將添加一個使用 IronBarcode 讀取 QR 碼的我的最愛方式的代碼範例。

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-6.cs
using IronBarCode;
using System;
using System.Linq;

BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { ExpectBarcodeTypes = BarcodeEncoding.QRCode });
if (result != null)
{
    Console.WriteLine(result.First().Value);
}
Imports IronBarCode
Imports System
Imports System.Linq

Private result As BarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})
If result IsNot Nothing Then
	Console.WriteLine(result.First().Value)
End If
VB   C#

還有一種更高級的形式,讓開發人員有更多的控制:

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-7.cs
using IronBarCode;
using System;
using System.Linq;

BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.All,
    Multithreaded = false,
    MaxParallelThreads = 0,
    CropArea = null,
    UseCode39ExtendedMode = false,
    RemoveFalsePositive = false,
    ImageFilters = null
};

BarcodeResults result = BarcodeReader.Read("QR.png", options);
if (result != null)
{
    Console.WriteLine(result.First().Value);
}
Imports IronBarCode
Imports System
Imports System.Linq

Private options As New BarcodeReaderOptions With {
	.Speed = ReadingSpeed.Faster,
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.All,
	.Multithreaded = False,
	.MaxParallelThreads = 0,
	.CropArea = Nothing,
	.UseCode39ExtendedMode = False,
	.RemoveFalsePositive = False,
	.ImageFilters = Nothing
}

Private result As BarcodeResults = BarcodeReader.Read("QR.png", options)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Value)
End If
VB   C#

前進

了解更多有關此範例和使用 C#中的QR碼,我們鼓勵您在我們的 GitHub 頁面上 fork 它或從我們的網站下載源代碼。

原始碼下載

下載此 C# QR 碼生成教學文件和 DLL。 GitHub 存储库

更多文件資料

您還可以找到 QRCodeWriter條碼讀取器 在 API 參考中感興趣的類別。

他們記錄了 IronBarcode 的完整功能集, VB.NET 條碼生成器,無法在單一教程中包羅萬象。

.NET 條碼庫可以通過為產品及其特定的實體批次生產代碼生成唯一標識符來革新在線和離線產品目錄的連接方式。

珍妮佛·懷特

應用架構主管

Jenny 领导一家制药巨头数字产品开发部门的软件产品架构。Jenny 的团队正在使用 IronBarcode 连接线上和线下产品目录。