Barcodes in C# lesen
IronBarcode for .NET bietet eine vielseitige, fortschrittliche und effiziente Bibliothek zum Lesen von Barcodes in .NET.
Wie man Barcodes in C# und VB.NET liest
- Installieren Sie IronBarcode von NuGet oder per DLL-Download
- Verwenden Sie die
BarcodeReader.Read
methode zum Lesen beliebiger Barcodes oder QR - Lesen Sie mehrere Barcodes oder QRs in einem einzigen Scan, PDF oder einer Multiframe-Tiff-Datei
- Ermöglichen Sie IronBarcode das Lesen von unvollkommenen Scans und Fotos
- Laden Sie das Tutorial-Projekt herunter und scannen Sie jetzt
Einrichtung
Beginnen Sie noch heute mit der Verwendung von IronBarcode in Ihrem Projekt mit einer kostenlosen Testversion.
IronBarcode for .NET bietet eine vielseitige, fortschrittliche und effiziente Bibliothek zum Lesen von Barcodes in .NET.
Der erste Schritt besteht darin, Iron Barcode zu installieren. Dies ist am einfachsten mit unserem NuGet-Paket möglich, Sie können aber auch das DLL in Ihr Projekt oder in Ihren globalen Assembly-Cache. IronBarcode funktioniert gut, um eine C# Barcode Scanner Anwendung zu erstellen.
Install-Package BarCode
Lesen Sie Ihren ersten Barcode
Das Lesen eines Barcodes oder QR-Codes in .NET ist mit der IronBarcode-Klassenbibliothek und dem .NET Barcode Reader unglaublich einfach. In unserem ersten Beispiel können wir sehen, wie man diesen Barcode mit einer Zeile Code liest.
Wir können seinen Wert, sein Bild, seinen Kodierungstyp und seine Binärdaten extrahieren(wenn überhaupt)und wir können das dann auf der Konsole ausgeben.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-1.cs
using IronBarCode;
using System;
// Read barcode
BarcodeResults results = BarcodeReader.Read("GetStarted.png");
// Log the result to Console Window
foreach (BarcodeResult result in results)
{
if (result != null)
{
Console.WriteLine("GetStarted was a success. Read Value: " + result.Text);
}
}
Imports IronBarCode
Imports System
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("GetStarted.png")
' Log the result to Console Window
For Each result As BarcodeResult In results
If result IsNot Nothing Then
Console.WriteLine("GetStarted was a success. Read Value: " & result.Text)
End If
Next result
Strengen Sie sich an und seien Sie spezifisch
Im nächsten Beispiel werden wir eine Barcode-Scan-Option hinzufügen, um ein anspruchsvolles Bild zu lesen. Der ExtremeDetail-Wert des Speed-Enums ermöglicht eine tiefere Erkennung eines Barcodes, der möglicherweise verdeckt, beschädigt oder in einem schrägen Winkel ist.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-2.cs
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose a speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more Detail is set
Speed = ReadingSpeed.ExtremeDetail,
// By default, all barcode formats are scanned for.
// Specifying one or more, performance will increase.
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};
// Read barcode
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
Imports IronBarCode
Private options As New BarcodeReaderOptions() With {
.Speed = ReadingSpeed.ExtremeDetail,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
Die diesen schiefen QR-Code lesen wird:
In unserem Beispiel können Sie sehen, dass wir die Barcode-Kodierung angeben können(s)wir suchen nach einem oder sogar mehreren Formaten. Dadurch wird die Leistung und Genauigkeit beim Lesen von Barcodes erheblich verbessert. Die pipe character, or 'Bitwise OR,' is used to specify multiple formats simultaneously.
Das Gleiche kann erreicht werden, aber mit einem höheren Maß an Spezifität, wenn wir voranschreiten und die Eigenschaften ImageFilters und AutoRotate verwenden.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-3.cs
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose which filters are to be applied (in order)
ImageFilters = new ImageFilterCollection() {
new AdaptiveThresholdFilter(),
},
// Uses machine learning to auto rotate the barcode
AutoRotate = true,
};
// Read barcode
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
Imports IronBarCode
Private options As New BarcodeReaderOptions() With {
.ImageFilters = New ImageFilterCollection() From {New AdaptiveThresholdFilter()},
.AutoRotate = True
}
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
Mehrere Barcodes lesen
PDF-Dokumente
In unserem nächsten Beispiel werden wir uns das Lesen einergescanntes PDF-Dokument und finden Sie alle Strichcodes im eindimensionalen Format in nur wenigen Codezeilen.
Wie Sie sehen können, ist es sehr ähnlich wie das Lesen eines einzelnen Strichcodes aus einem einzelnen Dokument, außer dass wir jetzt neue Informationen darüber haben, auf welcher Seitennummer der Strichcode gefunden wurde.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-4.cs
using IronBarCode;
using System;
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
foreach (var pageResult in results)
{
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);
}
Imports IronBarCode
Imports System
' Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
Private results As BarcodeResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results
For Each pageResult In results
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
Wir finden die folgenden Barcodes auf verschiedenen Seiten.
Scannt TIFFs
In unserem nächsten Beispiel können wir sehen, dass dasselbe Ergebnis aus einem mehrseitigen TIFF erzielt werden kann, das in diesem Kontext ähnlich wie ein PDF behandelt wird.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-5.cs
using IronBarCode;
// Multi frame TIFF and GIF images can also be scanned
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var pageResult in multiFrameResults)
{
//...
}
Imports IronBarCode
' Multi frame TIFF and GIF images can also be scanned
Private multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")
For Each pageResult In multiFrameResults
'...
Next pageResult
Multithreading
Um mehrere Dokumente zu lesen, können wir bessere Ergebnisse von IronBarcode erzielen, indem wir eine Liste der Dokumente erstellen und die BarcodeReader.Read
methode. Dies nutzt mehrere Threads und möglicherweise alle Kerne Ihrer CPU für den Barcode-Scanvorgang und kann exponentiell schneller sein als das Lesen von Barcodes nacheinander.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-6.cs
using IronBarCode;
// The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
var ListOfDocuments = new[] { "image1.png", "image2.JPG", "image3.pdf" };
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Enable multithreading
Multithreaded = true,
};
BarcodeResults batchResults = BarcodeReader.Read(ListOfDocuments, options);
Imports IronBarCode
' The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
Private ListOfDocuments = { "image1.png", "image2.JPG", "image3.pdf" }
Private options As New BarcodeReaderOptions() With {.Multithreaded = True}
Private batchResults As BarcodeResults = BarcodeReader.Read(ListOfDocuments, options)
Zusammenfassung
Zusammenfassend ist IronBarcode eine vielseitige .NET-Softwarebibliothek und ein C# QR-Code-Generator, der in der Lage ist, eine Vielzahl von Barcode-Formaten zu lesen. Es kann dies unabhängig davon tun, ob die Barcodes perfekte Bildschirmaufnahmen oder unvollständige Bilder aus der realen Welt sind, wie Fotografien oder Scans.
Weitere Lektüre
Um mehr über die Arbeit mit IronBarcode zu erfahren, sollten Sie die anderen Tutorials in diesem Abschnitt sowie die Beispiele auf unserer Homepage erkunden, die für die meisten Entwickler ausreichend sind, um loszulegen.
UnserAPI-Referenz, insbesondere die BarcodeReader-Klasse und das BarcodeEncoding-Enum, bieten detaillierte Informationen darüber, was Sie mit dieser C#-Barcode-Bibliothek erreichen können.
Quellcode-Downloads
Wir empfehlen Ihnen außerdem, dieses Tutorial herunterzuladen und es selbst auszuführen. Sie können dies tun, indem Sie den Quellcode herunterladen oder uns auf GitHub forken. Die Quelle für dieses .NET Barcode-Reader-Tutorial steht als Visual Studio 2017 Konsolenanwendungsprojekt zur Verfügung, das in C# geschrieben ist.