Zum Fußzeileninhalt springen
IRONBARCODE VERWENDEN
Wie man einen Barcode-Scanner in C# Windows-Anwendungen liest

Wie man Barcode-Scanner in C#-Windows-Apps verwendet

Dieses Tutorial zeigt, wie man QR-Codes und Barcodes in C# Konsolenanwendungen und .NET Windows Forms Anwendungen mit der IronBarcode-Bibliothek als Beispiel scannt.

Mit der IronBarcode-Bibliothek können mehrere Barcodes gleichzeitig gescannt und gelesen werden, und sie kann auch unvollkommene Bilder erfolgreich scannen. Lassen Sie uns zuerst klären, was ein Barcode-Scanner ist.

Was ist ein Barcode-Scanner?

Ein Barcode ist ein quadratisches oder rechteckiges Bild, das aus einer Reihe von parallelen schwarzen Linien und weißen Zwischenräumen unterschiedlicher Breite besteht. Ein Barcode-Scanner oder Barcode-Leser ist ein Gerät, das gedruckte Barcodes lesen, die im Barcode enthaltenen Daten dekodieren und die Daten an einen Computer senden kann.

Die folgenden Schritte zeigen, wie man mit Hilfe der IronBarcode-Bibliothek einen Barcode-Scanner erstellt.

Wie liest man Barcodes in C#?

  • Erstellen Sie ein .NET Windows Forms Anwendungsprojekt in Microsoft Visual Studio
  • Installieren Sie die Barcode-Bibliothek
  • Lesen Sie jeden Barcode oder QR-Code
  • Lesen Sie mehrere Barcodes oder QR-Codes in einem Scan
  • Lassen Sie IronBarcode von unvollkommenen Scans und Fotos lesen

1. Erstellen Sie eine Windows Forms Anwendung in Microsoft Visual Studio

Öffnen Sie Visual Studio > Klicken Sie auf Neues Projekt erstellen > Wählen Sie Windows Forms Application Template > Drücken Sie Weiter > Benennen Sie das Projekt > Drücken Sie Weiter > Wählen Sie das gewünschte .NET Framework > Klicken Sie auf den Erstellen Button.

Nachdem Sie das Projekt erstellt haben, entwerfen Sie das Formular wie folgt aus dem Visual Studio-Toolbox: PictureBox-, Label-, TextBox- und Button-Steuerelemente.

Wie man Barcode-Scanner in einer C# Windows-Anwendung verwendet, Abbildung 1: Barcode-Scanner Barcode-Scanner

2. Installieren Sie die Barcode .NET Bibliothek in C#

Die Barcode-Bibliothek kann mit einer der folgenden drei Methoden installiert werden:

1. Paket-Manager-Konsole

Schreiben Sie den folgenden Befehl in die Package Manager-Konsole. Es lädt das Paket herunter und installiert es für Sie.

Install-Package BarCode

2. NuGet-Pakete Manager Lösung

Sie können die Barcode-Bibliothek auch mit der NuGet-Pakete-Lösung installieren. Folgen Sie einfach diesen Schritten:

Klicken Sie auf Tools > NuGet-Paketmanager > NuGet-Pakete für Lösung verwalten.

Dies öffnet den NuGet-Paketmanager für Sie. Klicken Sie auf Durchsuchen und suchen Sie nach Barcode, dann installieren Sie die Klassenbibliothek.

Alternativ kann die IronBarCode.Dll heruntergeladen und als Referenz zu Ihrem Projekt hinzugefügt werden.

Nachdem Sie heruntergeladen haben, fügen Sie die folgenden Verweise zu Ihrem Barcode-Leser-Projekt hinzu.

using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

3. Lesen Sie jeden Barcode oder QR-Code

Das Lesen eines Barcodes oder QR-Codes in .NET ist unglaublich einfach mit der IronBarcode-Bibliothek mit .NET Barcode Reader.

Barcode-Scanner

Durchsuchen Sie in Ihrem Projekt das Bild, das Sie lesen möchten. Es wird in PictureBox geöffnet; jetzt klicken Sie auf "Code scannen". Der Text wird im Textfeld erscheinen.

Hier ist der Code für den "Durchsuchen"-Button, um ein Bild zu öffnen:

// Open file dialog   
OpenFileDialog open = new OpenFileDialog();
// Image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    // Display image in PictureBox
    pictureBox1.Image = new Bitmap(open.FileName); 
    // Store image file path in class data member. Initialize it as string ImageFileName;
    ImageFileName = open.FileName; 
}
// Open file dialog   
OpenFileDialog open = new OpenFileDialog();
// Image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    // Display image in PictureBox
    pictureBox1.Image = new Bitmap(open.FileName); 
    // Store image file path in class data member. Initialize it as string ImageFileName;
    ImageFileName = open.FileName; 
}
' Open file dialog   
Dim open As New OpenFileDialog()
' Image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp"
If open.ShowDialog() = DialogResult.OK Then
	' Display image in PictureBox
	pictureBox1.Image = New Bitmap(open.FileName)
	' Store image file path in class data member. Initialize it as string ImageFileName;
	ImageFileName = open.FileName
End If
$vbLabelText   $csharpLabel

Der Code für den "Code scannen"-Button:

// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;
// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;
' Read the barcode from the image file path
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName)
' Display the decoded text in TextBox
textBox1.Text = Result.Text
$vbLabelText   $csharpLabel

Der Barcode-Scanner zeigt die Barcodedaten im Textfeld wie folgt an:

Wie man Barcode-Scanner in einer C# Windows-Anwendung verwendet, Abbildung 2: Barcode-Bild, das mit C# gescannt werden soll Barcode-Bild, das mit C# gescannt werden soll

QR-Code-Scanner

In diesem Abschnitt behandelt die IronBarcode-Bibliothek effektiv reale Situationen mit schiefen QR-Codes. Auch wenn der schiefe Winkel QR-Code von der Read-Methode behandelt und gelesen werden kann, kann es dennoch mehr Zeit in Anspruch nehmen, ihn aufzulösen. Die IronBarcode-Bibliothek bietet eine angepasste Möglichkeit zur Verwendung von BarcodeReaderOptions als zusätzlichen Parameter, um mit solchen Bildeingaben umzugehen. Der Code sieht wie folgt aus:

// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
    ImageFilters = filtersToApply,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};

// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
    ImageFilters = filtersToApply,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};

// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
' Define a collection of image filters to apply
Dim filtersToApply = New ImageFilterCollection() From {
	New SharpenFilter(),
	New InvertFilter(),
	New ContrastFilter(),
	New BrightnessFilter(),
	New AdaptiveThresholdFilter(),
	New BinaryThresholdFilter()
}

' Configure barcode reader options with specified filters
Dim myOptionsExample As New BarcodeReaderOptions() With {
	.ImageFilters = filtersToApply,
	.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}

' Read the barcode/QR code with custom options and display result
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName, myOptionsExample)
textBox1.Text = Result.Text
$vbLabelText   $csharpLabel

Der Ausgang wird wie folgt sein, nachdem Sie das schiefe QR-Code-Bild geöffnet haben:

Wie man Barcode-Scanner in einer C# Windows-Anwendung verwendet, Abbildung 4: Schräges QRCode-Bild Schräges QRCode-Bild

Mehrere Barcodes in einem einzigen Scan lesen

PDF-Dokumente

Barcodelbder können aus einer PDF-Datei gescannt werden, und jedes Ergebnis kann wie gewünscht entsprechend angezeigt werden. Der folgende Beispielcode ermöglicht es Ihnen, mehrere Barcodes aus einer PDF-Datei zu lesen.

// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");

// Work with the results found
foreach (var PageResult in PDFResults) { 
    string Value = PageResult.Value;
    int PageNum = PageResult.PageNumber;
    System.Drawing.Bitmap Img = PageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PageResult.BarcodeType;
    byte[] Binary = PageResult.BinaryValue;
    Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");

// Work with the results found
foreach (var PageResult in PDFResults) { 
    string Value = PageResult.Value;
    int PageNum = PageResult.PageNumber;
    System.Drawing.Bitmap Img = PageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PageResult.BarcodeType;
    byte[] Binary = PageResult.BinaryValue;
    Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
' Scan for multiple barcodes within a PDF document
Dim PDFResults() As BarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")

' Work with the results found
For Each PageResult In PDFResults
	Dim Value As String = PageResult.Value
	Dim PageNum As Integer = PageResult.PageNumber
	Dim Img As System.Drawing.Bitmap = PageResult.BarcodeImage
	Dim BarcodeType As BarcodeEncoding = PageResult.BarcodeType
	Dim Binary() As Byte = PageResult.BinaryValue
	Console.WriteLine(PageResult.Value & " on page " & PageNum)
Next PageResult
$vbLabelText   $csharpLabel

Barcode und QR-Code in PDF-Dateien vorhanden:

Wie man Barcode-Scanner in einer C# Windows-Anwendung verwendet, Abbildung 3: C# - Barcodes von einem PDF lesen C# - Barcodes von einem PDF lesen

Barcodes von unvollkommenen Bildern lesen

In realen Anwendungsfällen werden Barcodes oft mit Unregelmäßigkeiten in Bildern, Scans, Vorschaubildern oder Fotografien gefunden und können digitale Geräusche enthalten oder schief sein. Dieser Abschnitt zeigt, wie man Barcodedaten aus Vorschaubildern liest.

Vorschaubilder

Die IronBarcode-Bibliothek verwendet den C# Barcode-Generator, der sogar in der Lage ist, ein beschädigtes Vorschaubild eines Barcodes zu lesen.

Wie man Barcode-Scanner in einer C# Windows-Anwendung verwendet, Abbildung 5: Automatische Barcodethumbnailgrößenkorrektur. Datei lesbar mit IronBarcode in C# Automatische Barcodethumbnailgrößenkorrektur. Datei lesbar mit IronBarcode in C#

Es erkennt automatisch Barcodelbilder, die zu klein sind, um tatsächlich einen Barcode darzustellen, vergrößert dann den Maßstab und bereinigt alle digitalen Geräusche, die mit der Vorschau verbunden sind, sodass sie wieder lesbar sind.

// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
' Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
Dim SmallResult As BarcodeResult = BarcodeReader.Read("ThumbnailOfBarcode.gif")
$vbLabelText   $csharpLabel

Zusammenfassung

IronBarcode is a versatile .NET software library and C# QR Code Generator for scanning and reading a wide range of barcode image formats, and it can do so whether or not these barcodes are perfect screen grabs or are in fact photographs, scans, or other imperfect real-world images. Additionally, IronBarcode offers a wide range of customization options to improve barcode reading speed, such as crop regions or multi-threading, and the accuracy of the ML model. Besuchen Sie die offizielle Dokumentationsseite für weitere Informationen zu IronBarcode.

Derzeit, wenn Sie die komplette Iron Suite kaufen, können Sie fünf Bibliotheken zum Preis von nur zwei erhalten.

Häufig gestellte Fragen

Was ist ein Barcode-Scanner im Kontext von C#-Anwendungen?

Ein Barcode-Scanner ist ein Gerät, das gedruckte Barcodes liest, die Informationen entschlüsselt und an einen Computer sendet. In C#-Anwendungen kann diese Funktionalität mit Bibliotheken wie IronBarcode implementiert werden.

Wie kann ich eine Windows Forms-Anwendung für das Barcode-Scannen mit C# erstellen?

Um eine Windows Forms-Anwendung für das Barcode-Scannen in C# zu erstellen, öffnen Sie Visual Studio, erstellen Sie ein neues Projekt mit der 'Windows Forms Application Template', konfigurieren Sie Ihr Ziel .NET-Framework und verwenden Sie Steuerelemente wie PictureBox, Label, TextBox und Button, um das Formular zu gestalten.

Was ist die empfohlene Methode zur Installation einer Barcode-Bibliothek in einem C#-Projekt?

Sie können eine Barcode-Bibliothek wie IronBarcode in einem C#-Projekt über die Paket-Manager-Konsole mit Install-Package IronBarCode, über den NuGet-Paket-Manager oder durch Herunterladen der DLL und Hinzufügen als Referenz installieren.

Ist es möglich, mehrere Barcodes in einem Scan mit einer C#-Bibliothek zu lesen?

Ja, mit IronBarcode können Sie mehrere Barcodes in einem einzigen Scan mit der BarcodeReader.ReadPdf-Methode lesen, sogar aus PDF-Dokumenten.

Wie schafft es die Bibliothek, Barcodes von minderwertigen Bildern zu lesen?

IronBarcode kann Barcodes von minderwertigen Bildern interpretieren, indem Bildfilter und Upscaling-Techniken angewendet werden, um digitales Rauschen zu reduzieren und genaue Lesungen sicherzustellen.

Welche Barcode-Formate werden von C#-Bibliotheken wie IronBarcode unterstützt?

IronBarcode unterstützt eine Vielzahl von Barcode-Formaten, einschließlich QR-Codes und Code128. Es kann diese Formate lesen, selbst wenn die Bilder unvollkommen oder mit einer Kamera aufgenommen sind.

Was sind die Schritte zur Implementierung des Barcode-Lesens in einer .NET-Anwendung?

Um das Barcode-Lesen zu implementieren, laden Sie ein Bild in eine PictureBox, lösen die Aktion 'Code scannen' aus und verwenden IronBarcode, um den dekodierten Text in einer TextBox zu verarbeiten und anzuzeigen.

Kann IronBarcode effektiv geneigte oder gekippte QR-Codes verarbeiten?

Ja, IronBarcode kann geneigte QR-Codes effektiv verarbeiten, indem es BarcodeReaderOptions verwendet, um die erforderlichen Bildfilter und Anpassungen für eine genaue Lesung anzuwenden.

Welche Anpassungsfunktionen bietet IronBarcode für das Barcode-Lesen?

IronBarcode bietet Funktionen wie Zuschneidebereiche, Multi-Threading und Parameteranpassungen, um die Geschwindigkeit und Genauigkeit des Barcode-Lesens zu verbessern.

Wo finde ich detailliertere Informationen zur Verwendung von Barcode-Bibliotheken in C#?

Für detailliertere Informationen zur Verwendung von Barcode-Bibliotheken in C# können Sie die offizielle Dokumentationsseite auf der Iron Software-Website besuchen.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen