Barcodes & QRs in C#- & VB.NET-Anwendungen

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

Das Lesen und Schreiben von Barcodes in C# und allen anderen .NET-Sprachen ist ein einfacher Prozess mit unserer IronBarcode-Softwarebibliothek.

IronBarcode installieren

Der erste Schritt auf der Reise ist die Installation von IronBarcode, die durch das Herunterladen von NuGet oder durch das Herunterladen der DLL erfolgen kann.

Um das IronBarcode NuGet-Paket zu installieren, können Sie den NuGet-Paketmanager für Visual Studio verwenden:

Install-Package BarCode

Alternativ können Sie auch mit dem dotnet CLI installieren:

dotnet add package BarCode

Weitere Informationen über das NuGet-Paket finden Sie auf der NuGet-Website.

Lesen eines Barcodes oder QR-Codes

Das Lesen eines Barcodes erfordert mit IronBarcode nur eine einzige Codezeile.

: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
$vbLabelText   $csharpLabel

Mit dieser einen Codezeile haben Sie die Möglichkeit, alle Arten von Barcodes aus dem Eingabedokument mit außergewöhnlicher Leistung zu erkennen und zu scannen—alles, was Sie in einem Schritt benötigen! Diese Methode unterstützt eine Vielzahl von Bildformaten, einschließlich Bilder wie JPEG, PNG und BMP, sowie PDFs und Mehrbildformate wie GIF und TIFF. Für diejenigen, die noch mehr Geschwindigkeit, optimierte Speichernutzung oder verbesserte Lesegenauigkeit benötigen, stehen anpassbare Konfigurationsoptionen zur Verfügung, um die Leistung an Ihre spezifischen Anforderungen anzupassen.

Um die Lesegeschwindigkeit zu verbessern, können Sie ein BarcodeReaderOptions-Objekt mit der Einstellung Speed hinzufügen. Standardmäßig ist es auf Balanced eingestellt, aber es gibt auch die Option Faster, bei der bestimmte Barcode-Leseprüfungen übersprungen werden, wie zum Beispiel das Prüfen auf invertierte Farben oder Barcode-Drehung.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-2.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
$vbLabelText   $csharpLabel

Sie können auch den ScanMode auf OnlyBasicScan setzen, um zu verhindern, dass unser Barcode-Erkennungsalgorithmus das Dokument scannt.

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

BarcodeResults results = BarcodeReader.Read("MultipleBarcodes.png");

// Loop through the results
foreach (BarcodeResult result in results)
{
    string value = result.Value;
    Bitmap img = result.BarcodeImage;
    BarcodeEncoding barcodeType = result.BarcodeType;
    byte[] binary = result.BinaryValue;
    Console.WriteLine(result.Value);
}
Imports IronBarCode

Private results As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.png")

' Loop through the results
For Each result As BarcodeResult In results
	Dim value As String = result.Value
	Dim img As Bitmap = result.BarcodeImage
	Dim barcodeType As BarcodeEncoding = result.BarcodeType
	Dim binary() As Byte = result.BinaryValue
	Console.WriteLine(result.Value)
Next result
$vbLabelText   $csharpLabel

Andere Konfigurationen, die Sie ausprobieren können, bestehen darin, spezifische Barcode-Formate zum Scannen anzugeben, sodass IronBarcode nicht nach allen Barcode-Typen scannen muss, und spezifische Bildbereiche zuzuschneiden, damit IronBarcode weniger Bilddaten verarbeiten muss. Es gibt auch eine Option für die Erwartung mehrerer Barcodes, sodass IronBarcode bestimmte Prozesse zur Erkennung und Dekodierung mehrerer Barcodes überspringen kann, wenn nur ein Barcode erwartet wird.

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

BarcodeResults pagedResults = BarcodeReader.Read("MultipleBarcodes.pdf");

// Loop through the results
foreach (BarcodeResult result in pagedResults)
{
    int pageNumber = result.PageNumber;
    string value = result.Value;
    Bitmap img = result.BarcodeImage;
    BarcodeEncoding barcodeType = result.BarcodeType;
    byte[] binary = result.BinaryValue;
    Console.WriteLine(result.Value);
}

// or from a multi-page  TIFF scan with image correction:
BarcodeResults multiFrameResults = BarcodeReader.Read(inputImage: "Multiframe.tiff", new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    Multithreaded = false,
    RemoveFalsePositive = false,
    ImageFilters = null
});
Imports IronBarCode

Private pagedResults As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.pdf")

' Loop through the results
For Each result As BarcodeResult In pagedResults
	Dim pageNumber As Integer = result.PageNumber
	Dim value As String = result.Value
	Dim img As Bitmap = result.BarcodeImage
	Dim barcodeType As BarcodeEncoding = result.BarcodeType
	Dim binary() As Byte = result.BinaryValue
	Console.WriteLine(result.Value)
Next result

' or from a multi-page  TIFF scan with image correction:
Dim multiFrameResults As BarcodeResults = BarcodeReader.Read(inputImage:= "Multiframe.tiff", New BarcodeReaderOptions With {
	.Speed = ReadingSpeed.Detailed,
	.ExpectMultipleBarcodes = True,
	.ExpectBarcodeTypes = BarcodeEncoding.Code128,
	.Multithreaded = False,
	.RemoveFalsePositive = False,
	.ImageFilters = Nothing
})
$vbLabelText   $csharpLabel

Barcodes schreiben

Um Barcodes mit IronBarcode zu erstellen, verwenden wir die BarcodeWriter-Klasse. Mit BarcodeWriter ist das Schreiben von Barcodes ein weiterer einfacher Einzeiler: Geben Sie einfach die Eingabedaten und das Barcode-Format ein, und los geht's! Sie können dann die Barcode-Bilddaten als Speicher oder als Datei speichern.

: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")
$vbLabelText   $csharpLabel

Gestaltung von Barcodes

IronBarcode bietet mehrere Optionen, um die visuelle Darstellung eines Barcodes zu manipulieren. Unterstützte Funktionen zur Gestaltung von Barcodes umfassen das Anpassen der Größe, das Festlegen von Rändern im Ausgabeimage, das Ändern der Vorder- und Hintergrundfarben sowie das Hinzufügen von Anmerkungen.

: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")
$vbLabelText   $csharpLabel

Barcodes als HTML exportieren

Es gibt auch die praktische Funktion, HTML aus einem generierten Barcode zu exportieren. Es kann einen Barcode als eigenständiges HTML-Dokument ohne externe Assets, als eigenständiges HTML-Tag oder als Daten-URI exportieren.

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

QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf");
Imports IronBarCode

QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf")
$vbLabelText   $csharpLabel

QR-Codes generieren

Beim Erstellen von QR-Codes mit IronBarcode können wir stattdessen die QRCodeWriter-Klasse verwenden. Diese Klasse bietet einige zusätzliche Anpassungskonfigurationen, die ausschließlich für QR-Codes gelten, wie zum Beispiel das Einstellen der Fehlerkorrekturstufe und das Hinzufügen eines Bildes in der Mitte des QR-Codes.

: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")
$vbLabelText   $csharpLabel

Unterstützte Barcode-Formate

IronBarcode unterstützt eine große Auswahl an gängigen Barcode-Formaten sowohl für das Lesen als auch Schreiben:

  • QR-, Micro-QR- und Rechteck-Mikro-QR (rMQR)-Codes.
  • Andere zweidimensionale Barcodes wie Aztec, Data Matrix, MaxiCode und PDF417.
  • Gestapelte lineare Barcodes wie Databar.
  • Konventionelle eindimensionale Barcode-Formate wie UPC-A, UPC-E, EAN-8, EAN-13, Codabar, ITF, MSI und Plessey.

Warum IronBarcode wählen?

IronBarcode bietet eine benutzerfreundliche und einfach zu bedienende API für Entwickler, um Barcodes für .NET zu lesen und zu schreiben, die für Genauigkeit, Präzision und Geschwindigkeit in realen Anwendungsfällen optimiert ist.

Die BarcodeWriter-Klasse wird beispielsweise automatisch 'Checksummen' auf UPCA- und UPCE-Barcodes validieren und korrigieren. Außerdem werden Zahlen, die für ein bestimmtes numerisches Format zu kurz sind, mit einem "Zero-Pad" versehen. Wenn Ihre Daten nicht dem angegebenen Datenformat entsprechen, wird IronBarcode dem Entwickler ein geeigneteres Barcode-Format vorschlagen, das er verwenden könnte.

IronBarcode glänzt sowohl im Bereich des Lesens von Barcodes aus Dokumenten als auch im Bereich des Lesens von Barcodes aus Bildern, die in der realen Welt aufgenommen wurden. Die Bibliothek umfasst eine Reihe von Bildvorverarbeitungstechniken, um die Wahrscheinlichkeit des Lesens von Barcodes zu maximieren, wie z. B. automatische Drehung und Bildentrauschung.

Vorwärts bewegen

Um das Beste aus IronBarcode herauszuholen, empfehlen wir Ihnen, die Tutorials in diesem Dokumentationsabschnitt zu lesen und uns auf GitHub zu besuchen.