C# 和 VB.NET 应用程序中的条形码与二维码

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

使用我们的 IronBarcode for .NET 软件库,用 C# 和所有其他 .NET 语言读写条形码是一个简单的过程。

安装 IronBarcode

旅程的第一步是安装 IronBarcode,可从 NuGet 下载或通过以下方式完成 下载 DLL.

要安装 IronBarcode NuGet 软件包,您可以使用 Visual Studio 的 NuGet 软件包管理器:

Install-Package BarCode

或者,您也可以使用 dotnet CLI 进行安装:

dotnet add package BarCode

有关 NuGet 软件包的更多信息,请访问 NuGet 网站.

读取条形码或二维码

使用 IronBarcode 阅读条形码只需一行代码。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-1.cs
using IronBarCode;

BarcodeResults results = BarcodeReader.Read("QuickStart.jpg");
if (results != null)
{
    foreach (BarcodeResult result in results)
    {
        Console.WriteLine(result.Text);
    }
}
Imports IronBarCode

Private results As BarcodeResults = BarcodeReader.Read("QuickStart.jpg")
If results IsNot Nothing Then
	For Each result As BarcodeResult In results
		Console.WriteLine(result.Text)
	Next result
End If
VB   C#

只需这一行代码,您就能从输入文档中检测并扫描所有类型的 BarCode,而且性能卓越--一步到位,满足您的一切需求!该方法支持多种图像格式,包括 JPEG、PNG 和 BMP 等图像,以及 PDF 和 GIF 和 TIFF 等多帧格式。 对于那些需要更快的速度、优化内存使用或提高阅读准确性的用户,我们提供了可定制的配置选项,可根据您的具体需求对性能进行微调。

例如,为了提高阅读速度,您可以添加一个设置了 "速度 "的 "BarcodeReaderOptions "对象。 默认设置为 "Balanced"(均衡),但也有一个 "Faster"(更快)选项,可跳过某些条形码读取检查,如检查反色或条形码旋转。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-2.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    Speed = ReadingSpeed.Faster
};

BarcodeResults result = BarcodeReader.Read("QuickStart.jpg", myOptionsExample);
if (result != null)
{
    Console.WriteLine(result.First().Text);
}
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {.Speed = ReadingSpeed.Faster}

Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Text)
End If
VB   C#

您也可以将 ScanMode 设置为 OnlyBasicScan 以跳过我们的条形码检测算法扫描文档。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-3.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    ScanMode = BarcodeScanMode.OnlyBasicScan
};

BarcodeResults result = BarcodeReader.Read("QuickStart.jpg", myOptionsExample);
if (result != null)
{
    Console.WriteLine(result.First().Text);
}
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {.ScanMode = BarcodeScanMode.OnlyBasicScan}

Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Text)
End If
VB   C#

其他可尝试的配置包括指定要扫描的条形码格式,这样 IronBarcode 就不必扫描所有条形码类型;裁剪图像的特定区域,这样 IronBarcode 需要处理的图像数据就会减少。 此外,还有一个预期多个条形码的选项,因此如果预期只有一个条形码,IronBarcode 可以跳过某些检测和解码多个条形码的过程。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-4.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    CropArea = new System.Drawing.Rectangle(100, 200, 300, 400),
};

BarcodeResults result = BarcodeReader.Read("QuickStart.jpg", myOptionsExample);
if (result != null)
{
    Console.WriteLine(result.First().Text);
}
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
	.CropArea = New System.Drawing.Rectangle(100, 200, 300, 400)
}

Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Text)
End If
VB   C#

生成条形码

要使用 IronBarcode 编写条形码,我们使用 BarcodeWriter 类。 有了 BarcodeWriter,编写条形码又只需简单的一行代码:只需输入输入数据和条形码格式,您就可以开始了! 然后,您可以将条形码图像数据保存为内存或文件。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-5.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.SaveAsImage("myBarcode.png");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.SaveAsImage("myBarcode.png")
VB   C#

样式条形码

IronBarcode 提供多种选项来处理条形码的视觉描述。 支持的 BarCode 风格化功能包括调整大小、在输出图像中设置边距、更改前景和背景颜色以及添加注释。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-7.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.AddAnnotationTextAboveBarcode("Product URL:");
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SetMargins(100);
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple);

// All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.AddAnnotationTextAboveBarcode("Product URL:")
myBarcode.AddBarcodeValueTextBelowBarcode()
myBarcode.SetMargins(100)
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple)

' All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png")
VB   C#

将条形码导出为HTML

此外,还有从生成的 BarCode 导出 HTML 的便捷功能。 它可以将条形码导出为一个独立的HTML文档,不包含外部资源,作为一个独立的HTML标签,或者作为数据URI。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-8.cs
using IronBarcode;

myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
myBarcode.SaveAsHtmlFile("myBarcode.html");
Imports IronBarcode

myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
myBarcode.SaveAsHtmlFile("myBarcode.html")
VB   C#

生成二维码

在使用 IronBarcode 生成 QR 代码时,我们可以选择使用 QRCodeWriter 类来代替。 本课还提供了一些 QR 码专用的自定义配置,如设置纠错级别和在 QR 中心添加图像。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-9.cs
using IronBarCode;
using IronSoftware.Drawing;

QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo);
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf");
Imports IronBarCode
Imports IronSoftware.Drawing

Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo)
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf")
VB   C#

支持的条码格式

IronBarcode 支持多种常用条码格式的读写:

  • QRMicro QRRectangular Micro QR(rMQR) 代码。
  • 其他二维条形码,如AztecData MatrixMaxiCodePDF417
  • 堆叠线性条形码,如Databar
  • 传统的一维条形码格式,如 UPC-AUPC-EEAN-8EAN-13BarcodeITFMSIPlessey

为什么选择 IronBarcode?

IronBarcode 为开发人员读写 .NET 条码提供了友好、易用的 API,在实际使用案例中优化了准确性、精确度和速度。

例如,"BarcodeWriter "类将自动验证和纠正 UPCA 和 UPCE 条形码上的 "校验和"。 它还会对数字进行“零填充”,使其符合特定的数字格式。 如果您的数据不适合指定的数据格式,IronBarcode 将指导开发人员可能使用的更合适的条码格式。

IronBarcode 在从文件中读取条形码和从现实世界拍摄的图像中读取条形码这两个领域都大放异彩。 该库包括一些图像预处理技术,以最大限度地提高条形码被读取的概率,如自动旋转和图像去噪。

向前发展

要充分利用 IronBarcode,我们建议您阅读本文档中的教程,并访问我们的网站GitHub.