C# Barcode Scanner: Read Barcodes & QR Codes in .NET Applications
Möchten Sie Barcodes oder QR-Codes in Ihrer .NET-Anwendung schnell scannen? IronBarcode macht das Lesen von BarCodes einfach und zuverlässig, egal ob Sie perfekte digitale Bilder oder anspruchsvolle Fotos aus der realen Welt verarbeiten. Dieser Leitfaden zeigt Ihnen anhand praktischer Beispiele, die Sie sofort anwenden können, genau, wie Sie das Scannen von BarCodes in C# implementieren.
Schnellstart: Sofortiges Einlesen eines BarCodes aus einer Datei
Dieses kurze Beispiel zeigt Ihnen, wie einfach der Einstieg in IronBarcode ist. Mit nur einer Zeile Code können Sie BarCodes aus einer Bilddatei auslesen – ohne komplizierte Einrichtung.
-
Installieren Sie IronBarcode mit NuGet Package Manager
PM > Install-Package BarCode -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
var results = IronBarCode.BarcodeReader.Read("path/to/barcode.png"); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronBarcode in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Installieren Sie IronBarcode über NuGet oder per DLL-Download
- Verwenden Sie die
BarcodeReader.ReadMethode zum Scannen beliebiger Barcodes oder QR-Codes - Lesen Sie mehrere BarCodes oder QR-Codes in einem einzigen Scan, einer PDF-Datei oder einer TIFF-Datei mit mehreren Frames
- Ermöglichen Sie IronBarcode, unvollständige Scans und Fotos mit erweiterten Filtern zu entschlüsseln
- Laden Sie das Tutorial-Projekt herunter und beginnen Sie sofort mit dem Scannen
Wie installiere ich IronBarcode in meinem .NET-Projekt?
IronBarcode lässt sich einfach über den NuGet Package Manager oder durch direkten Download der DLL installieren. Die NuGet-Installation ist der empfohlene Ansatz, da sie Abhängigkeiten und Updates automatisch verwaltet.
Install-Package BarCode
Fügen Sie nach der Installation using IronBarCode; zu Ihren C#-Dateien hinzu, um auf die BarCode-Scan-Funktionalität zuzugreifen. Ausführliche Installationsanweisungen für verschiedene Umgebungen finden Sie in unserer Installationsanleitung.
Wie kann ich meinen ersten BarCode mit C# lesen?
Das Lesen von Barcodes mit IronBarcode erfordert nur eine einzige Zeile Code. Die Bibliothek erkennt BarCode-Formate automatisch und extrahiert alle kodierten Daten.
*Ein Standard-Code128-BarCode, den IronBarcode sofort lesen kann*using IronBarCode;
using System;
// Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
BarcodeResults results = BarcodeReader.Read("GetStarted.png");
// Check if any barcodes were detected
if (results != null && results.Co/unt > 0)
{
// Process each barcode found in the image
foreach (BarcodeResult result in results)
{
// Extract the text value from the barcode
Console.WriteLine("Barcode detected! Value: " + result.Text);
// Additional properties available:
// result.BarcodeType - The format (Code128, QR, etc.)
// result.BinaryValue - Raw binary data if applicable
// result.Co/nfidence - Detection confidence score
}
}
else
{
Console.WriteLine("No barcodes detected in the image.");
}
using IronBarCode;
using System;
// Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
BarcodeResults results = BarcodeReader.Read("GetStarted.png");
// Check if any barcodes were detected
if (results != null && results.Co/unt > 0)
{
// Process each barcode found in the image
foreach (BarcodeResult result in results)
{
// Extract the text value from the barcode
Console.WriteLine("Barcode detected! Value: " + result.Text);
// Additional properties available:
// result.BarcodeType - The format (Code128, QR, etc.)
// result.BinaryValue - Raw binary data if applicable
// result.Co/nfidence - Detection confidence score
}
}
else
{
Console.WriteLine("No barcodes detected in the image.");
}
Imports IronBarCode
Imports System
' Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
Dim results As BarcodeResults = BarcodeReader.Read("GetStarted.png")
' Check if any barcodes were detected
If results IsNot Nothing AndAlso results.Count > 0 Then
' Process each barcode found in the image
For Each result As BarcodeResult In results
' Extract the text value from the barcode
Console.WriteLine("Barcode detected! Value: " & result.Text)
' Additional properties available:
' result.BarcodeType - The format (Code128, QR, etc.)
' result.BinaryValue - Raw binary data if applicable
' result.Confidence - Detection confidence score
Next
Else
Console.WriteLine("No barcodes detected in the image.")
End If
Die BarcodeReader.Read-Methode gibt eine BarcodeResults-Sammlung zurück, die alle erkannten BarCodes enthält. Jedes BarcodeResult bietet Zugriff auf den Textwert, den Formattyp, die Positionskoordinaten und die Binärdaten des BarCodes. Dieser Ansatz funktioniert nahtlos mit gängigen BarCode-Formaten wie Code128, Code39, QR-Codes und Data-Matrix-Codes.
Welche Optionen helfen beim Lesen schwieriger oder beschädigter BarCodes?
Beim Scannen von BarCodes in der Praxis kommt es häufig zu unvollkommenen Bildern – schräge Winkel, schlechte Beleuchtung oder teilweise Beschädigungen. Die erweiterten Optionen von IronBarcode bewältigen diese Herausforderungen effektiv.
using IronBarCode;
// Configure advanced reading options for difficult barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions
{
// Speed settings: Faster, Balanced, Detailed, ExtremeDetail
// ExtremeDetail performs deep analysis for challenging images
Speed = ReadingSpeed.ExtremeDetail,
// Specify expected formats to improve performance
// Use bitwise OR (|) to combine multiple formats
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Co/de128,
// Maximum number of barcodes to find (0 = unlimited)
MaxParallelThreads = 4,
// Crop region for faster processing of specific areas
CropArea = null // Or specify a Rectangle
};
// Apply options when reading
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
// Process detected barcodes
foreach (var barcode in results)
{
Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}");
}
using IronBarCode;
// Configure advanced reading options for difficult barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions
{
// Speed settings: Faster, Balanced, Detailed, ExtremeDetail
// ExtremeDetail performs deep analysis for challenging images
Speed = ReadingSpeed.ExtremeDetail,
// Specify expected formats to improve performance
// Use bitwise OR (|) to combine multiple formats
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Co/de128,
// Maximum number of barcodes to find (0 = unlimited)
MaxParallelThreads = 4,
// Crop region for faster processing of specific areas
CropArea = null // Or specify a Rectangle
};
// Apply options when reading
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
// Process detected barcodes
foreach (var barcode in results)
{
Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}");
}
Imports IronBarCode
' Configure advanced reading options for difficult barcodes
Dim options As New BarcodeReaderOptions With {
' Speed settings: Faster, Balanced, Detailed, ExtremeDetail
' ExtremeDetail performs deep analysis for challenging images
.Speed = ReadingSpeed.ExtremeDetail,
' Specify expected formats to improve performance
' Use bitwise OR (|) to combine multiple formats
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
' Maximum number of barcodes to find (0 = unlimited)
.MaxParallelThreads = 4,
' Crop region for faster processing of specific areas
.CropArea = Nothing ' Or specify a Rectangle
}
' Apply options when reading
Dim results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
' Process detected barcodes
For Each barcode In results
Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}")
Next barcode
*Ein gedrehter QR-Code, den IronBarcode mithilfe erweiterter Optionen erfolgreich liest*Die Eigenschaft ExpectBarcodeTypes verbessert die Leistung erheblich, indem sie die Suche auf bestimmte Formate beschränkt. Für maximale Genauigkeit bei problematischen Bildern kombinieren Sie Bildfilter mit automatischer Drehung:
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions
{
// Apply image processing filters to enhance readability
ImageFilters = new ImageFilterCollection
{
new AdaptiveThresholdFilter(9, 0.01f), // Handles varying lighting
new ContrastFilter(2.0f), // Increases contrast
new SharpenFilter() // Reduces blur
},
// Automatically rotate to find barcodes at any angle
AutoRotate = true,
// Use multiple CPU cores for faster processing
Multithreaded = true
};
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
foreach (var result in results)
{
Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}");
Console.WriteLine($"Confidence: {result.Co/nfidence}%");
Console.WriteLine($"Position: X={result.X}, Y={result.Y}");
}
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions
{
// Apply image processing filters to enhance readability
ImageFilters = new ImageFilterCollection
{
new AdaptiveThresholdFilter(9, 0.01f), // Handles varying lighting
new ContrastFilter(2.0f), // Increases contrast
new SharpenFilter() // Reduces blur
},
// Automatically rotate to find barcodes at any angle
AutoRotate = true,
// Use multiple CPU cores for faster processing
Multithreaded = true
};
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
foreach (var result in results)
{
Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}");
Console.WriteLine($"Confidence: {result.Co/nfidence}%");
Console.WriteLine($"Position: X={result.X}, Y={result.Y}");
}
Imports IronBarCode
Dim options As New BarcodeReaderOptions With {
.ImageFilters = New ImageFilterCollection From {
New AdaptiveThresholdFilter(9, 0.01F), ' Handles varying lighting
New ContrastFilter(2.0F), ' Increases contrast
New SharpenFilter() ' Reduces blur
},
.AutoRotate = True, ' Automatically rotate to find barcodes at any angle
.Multithreaded = True ' Use multiple CPU cores for faster processing
}
Dim results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
For Each result In results
Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}")
Console.WriteLine($"Confidence: {result.Confidence}%")
Console.WriteLine($"Position: X={result.X}, Y={result.Y}")
Next
Dank dieser erweiterten Funktionen eignet sich IronBarcode ideal zum Scannen von BarCodes aus Fotos, von Sicherheitskameras oder von Aufnahmen mobiler Geräte, bei denen die Bildqualität stark variiert.
Wie scanne ich mehrere BarCodes aus PDF-Dokumenten?
Das Scannen von PDF-BarCodes ist für die Verarbeitung von Rechnungen, Versandetiketten und Bestandsdokumenten unerlässlich. IronBarcode liest alle BarCodes auf jeder Seite effizient aus.
Lesen von BarCodes aus PDF-Dateien
using System;
using IronBarCode;
try
{
// Scan all pages of a PDF for barcodes
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
if (results != null && results.Co/unt > 0)
{
foreach (var barcode in results)
{
// Access barcode data and metadata
string value = barcode.Text;
int pageNumber = barcode.PageNumber;
BarcodeEncoding format = barcode.BarcodeType;
byte[] binaryData = barcode.BinaryValue;
// Extract barcode image if needed
System.Drawing.Bitmap barcodeImage = barcode.BarcodeImage;
Console.WriteLine($"Found {format} on page {pageNumber}: {value}");
}
}
else
{
Console.WriteLine("No barcodes found in the PDF.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error reading PDF: {ex.Message}");
}
using System;
using IronBarCode;
try
{
// Scan all pages of a PDF for barcodes
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
if (results != null && results.Co/unt > 0)
{
foreach (var barcode in results)
{
// Access barcode data and metadata
string value = barcode.Text;
int pageNumber = barcode.PageNumber;
BarcodeEncoding format = barcode.BarcodeType;
byte[] binaryData = barcode.BinaryValue;
// Extract barcode image if needed
System.Drawing.Bitmap barcodeImage = barcode.BarcodeImage;
Console.WriteLine($"Found {format} on page {pageNumber}: {value}");
}
}
else
{
Console.WriteLine("No barcodes found in the PDF.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error reading PDF: {ex.Message}");
}
Imports System
Imports IronBarCode
Try
' Scan all pages of a PDF for barcodes
Dim results As BarcodeResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
If results IsNot Nothing AndAlso results.Count > 0 Then
For Each barcode In results
' Access barcode data and metadata
Dim value As String = barcode.Text
Dim pageNumber As Integer = barcode.PageNumber
Dim format As BarcodeEncoding = barcode.BarcodeType
Dim binaryData As Byte() = barcode.BinaryValue
' Extract barcode image if needed
Dim barcodeImage As System.Drawing.Bitmap = barcode.BarcodeImage
Console.WriteLine($"Found {format} on page {pageNumber}: {value}")
Next
Else
Console.WriteLine("No barcodes found in the PDF.")
End If
Catch ex As Exception
Console.WriteLine($"Error reading PDF: {ex.Message}")
End Try
Konsolenausgabe, die mehrere BarCodes anzeigt, die auf verschiedenen PDF-Seiten gefunden wurden
Für bestimmte Seitenbereiche oder erweiterte PDF-Verarbeitung verwenden Sie BarcodeReaderOptions:
// Read only specific pages to improve performance
BarcodeReaderOptions pdfOptions = new BarcodeReaderOptions
{
// Scan pages 1-5 only
PageNumbers = new[] { 1, 2, 3, 4, 5 },
// PDF-specific settings
PdfDpi = 300, // Higher DPI for better accuracy
ReadBehindVectorGraphics = true
};
BarcodeResults results = BarcodeReader.ReadPdf("document.pdf", pdfOptions);
// Read only specific pages to improve performance
BarcodeReaderOptions pdfOptions = new BarcodeReaderOptions
{
// Scan pages 1-5 only
PageNumbers = new[] { 1, 2, 3, 4, 5 },
// PDF-specific settings
PdfDpi = 300, // Higher DPI for better accuracy
ReadBehindVectorGraphics = true
};
BarcodeResults results = BarcodeReader.ReadPdf("document.pdf", pdfOptions);
' Read only specific pages to improve performance
Dim pdfOptions As New BarcodeReaderOptions With {
.PageNumbers = { 1, 2, 3, 4, 5 },
.PdfDpi = 300,
.ReadBehindVectorGraphics = True
}
Dim results As BarcodeResults = BarcodeReader.ReadPdf("document.pdf", pdfOptions)
Wie kann ich TIFF-Bilder mit mehreren Frames verarbeiten?
Multiframe-TIFF-Dateien, die häufig in Dokumentenscan- und Faxsystemen verwendet werden, werden ebenso umfassend unterstützt wie PDF-Dateien.
Eine TIFF-Datei mit mehreren Frames und BarCodes auf verschiedenen Frames
using IronBarCode;
// TIFF files are processed similarly to regular images
// Each frame is scanned automatically
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var result in multiFrameResults)
{
// Access frame-specific information
int frameNumber = result.PageNumber; // Frame number in TIFF
string barcodeValue = result.Text;
Console.WriteLine($"Frame {frameNumber}: {barcodeValue}");
// Save individual barcode images if needed
result.BarcodeImage?.Save($"barcode_frame_{frameNumber}.png");
}
using IronBarCode;
// TIFF files are processed similarly to regular images
// Each frame is scanned automatically
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var result in multiFrameResults)
{
// Access frame-specific information
int frameNumber = result.PageNumber; // Frame number in TIFF
string barcodeValue = result.Text;
Console.WriteLine($"Frame {frameNumber}: {barcodeValue}");
// Save individual barcode images if needed
result.BarcodeImage?.Save($"barcode_frame_{frameNumber}.png");
}
Imports IronBarCode
' TIFF files are processed similarly to regular images
' Each frame is scanned automatically
Private multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")
For Each result In multiFrameResults
' Access frame-specific information
Dim frameNumber As Integer = result.PageNumber ' Frame number in TIFF
Dim barcodeValue As String = result.Text
Console.WriteLine($"Frame {frameNumber}: {barcodeValue}")
' Save individual barcode images if needed
If result.BarcodeImage IsNot Nothing Then
result.BarcodeImage.Save($"barcode_frame_{frameNumber}.png")
End If
Next result
Das Gleiche gilt für die TIFF-Verarbeitung, einschließlich Bildfiltern und Drehungseinstellungen. Ausführliche Szenarien zur TIFF-Verarbeitung finden Sie in unseren Tutorials zur Bildverarbeitung.
Kann ich die Verarbeitung durch Multithreading beschleunigen?
Die Verarbeitung mehrerer Dokumente profitiert erheblich von der parallelen Verarbeitung. IronBarcode nutzt automatisch die verfügbaren CPU-Kerne für optimale Leistung.
using IronBarCode;
// List of documents to process - mix of formats supported
var documentBatch = new[]
{
"invoice1.pdf",
"shipping_label.png",
"inventory_sheet.tiff",
"product_catalog.pdf"
};
// Configure for batch processing
BarcodeReaderOptions batchOptions = new BarcodeReaderOptions
{
// Enable parallel processing across documents
Multithreaded = true,
// Limit threads if needed (0 = use all cores)
MaxParallelThreads = Environment.ProcessorCount,
// Apply consistent settings to all documents
Speed = ReadingSpeed.Balanced,
ExpectBarcodeTypes = BarcodeEncoding.All
};
// Process all documents in parallel
BarcodeResults batchResults = BarcodeReader.Read(documentBatch, batchOptions);
// Group results by source document
var resultsByDocument = batchResults.GroupBy(r => r.Filename);
foreach (var docGroup in resultsByDocument)
{
Console.WriteLine($"\nDocument: {docGroup.Key}");
foreach (var barcode in docGroup)
{
Console.WriteLine($" - {barcode.BarcodeType}: {barcode.Text}");
}
}
using IronBarCode;
// List of documents to process - mix of formats supported
var documentBatch = new[]
{
"invoice1.pdf",
"shipping_label.png",
"inventory_sheet.tiff",
"product_catalog.pdf"
};
// Configure for batch processing
BarcodeReaderOptions batchOptions = new BarcodeReaderOptions
{
// Enable parallel processing across documents
Multithreaded = true,
// Limit threads if needed (0 = use all cores)
MaxParallelThreads = Environment.ProcessorCount,
// Apply consistent settings to all documents
Speed = ReadingSpeed.Balanced,
ExpectBarcodeTypes = BarcodeEncoding.All
};
// Process all documents in parallel
BarcodeResults batchResults = BarcodeReader.Read(documentBatch, batchOptions);
// Group results by source document
var resultsByDocument = batchResults.GroupBy(r => r.Filename);
foreach (var docGroup in resultsByDocument)
{
Console.WriteLine($"\nDocument: {docGroup.Key}");
foreach (var barcode in docGroup)
{
Console.WriteLine($" - {barcode.BarcodeType}: {barcode.Text}");
}
}
Imports Microsoft.VisualBasic
Imports IronBarCode
' List of documents to process - mix of formats supported
Private documentBatch = { "invoice1.pdf", "shipping_label.png", "inventory_sheet.tiff", "product_catalog.pdf" }
' Configure for batch processing
Private batchOptions As New BarcodeReaderOptions With {
.Multithreaded = True,
.MaxParallelThreads = Environment.ProcessorCount,
.Speed = ReadingSpeed.Balanced,
.ExpectBarcodeTypes = BarcodeEncoding.All
}
' Process all documents in parallel
Private batchResults As BarcodeResults = BarcodeReader.Read(documentBatch, batchOptions)
' Group results by source document
Private resultsByDocument = batchResults.GroupBy(Function(r) r.Filename)
For Each docGroup In resultsByDocument
Console.WriteLine($vbLf & "Document: {docGroup.Key}")
For Each barcode In docGroup
Console.WriteLine($" - {barcode.BarcodeType}: {barcode.Text}")
Next barcode
Next docGroup
Dieser parallele Ansatz verarbeitet Dokumente gleichzeitig und reduziert so die Gesamtscanzeit auf Multicore-Systemen um bis zu 75 %. Für die BarCode-Verarbeitung im Enterprise-Maßstab lesen Sie unseren Leitfaden zur Leistungsoptimierung.
Zusammenfassung
IronBarcode wandelt komplexes BarCode-Scannen in einfachen C#-Code um. Ganz gleich, ob Sie Inventarsysteme, Dokumentenverarbeitungsprogramme oder mobile Anwendungen entwickeln – die Bibliothek bewältigt alles, von makellosen digitalen BarCodes bis hin zu anspruchsvollen Erfassungen aus der Praxis.
Abgedeckte Hauptfunktionen:
- Einzeiliges Lesen von BarCodes aus Bildern
- Erweiterte Optionen für beschädigte oder gedrehte BarCodes
- Umfassendes Scannen von PDF- und TIFF-Dokumenten
- Hochleistungsfähige Stapelverarbeitung mit Multithreading
- Unterstützung aller gängigen BarCode-Formate
Weiterführende Literatur
Erweitern Sie Ihre Möglichkeiten zur BarCode-Verarbeitung mit diesen Ressourcen:
- Tutorial zur BarCode-Erstellung – Erstellen Sie benutzerdefinierte BarCodes
- QR-Code-Anleitung](/csharp/barcode/tutorials/csharp-qr-code-generator/) – Spezielle QR-Code-Funktionen
BarcodeReaderKlassenreferenz – Vollständige API-Dokumentation- Leitfaden zur Fehlerbehebung – Häufige Probleme und Lösungen
Quellcode-Downloads
Führen Sie diese Beispiele selbst aus:
Sind Sie bereit, das Scannen von BarCodes in Ihrer Anwendung zu implementieren? Starten Sie Ihre kostenlose Testversion und erweitern Sie Ihr .NET-Projekt noch heute um professionelles BarCode-Lesen.
Häufig gestellte Fragen
Wie kann ich eine Barcode-Lese-Bibliothek in einem .NET-Projekt installieren?
Sie können die Bibliothek IronBarcode über den NuGet Paket-Manager mit dem Befehl dotnet add package BarCode installieren oder über die NuGet-Oberfläche von Visual Studio. Alternativ können Sie die DLL für die manuelle Installation herunterladen.
Was ist die Methode, um einen Barcode von einem Bild mit C# zu lesen?
Verwenden Sie die BarcodeReader.Read-Methode von IronBarcode mit einer einzigen Codezeile: var results = BarcodeReader.Read('image.png'); Diese Methode erkennt und liest alle im Bild vorhandenen Barcode-Formate.
Ist es möglich, mehrere Barcodes in einem einzelnen Bild oder Dokument zu erkennen?
Ja, IronBarcode kann automatisch mehrere Barcodes in einem Bild, PDF oder Multiframe-TIFF erkennen und lesen und gibt den Wert, den Typ und die Position jedes Barcodes in einer BarcodeResults-Sammlung zurück.
Wie lese ich Barcodes aus einem PDF mit C#?
Verwenden Sie IronBarcodes BarcodeReader.ReadPdf-Methode, um alle Seiten eines PDF-Dokuments zu scannen: var results = BarcodeReader.ReadPdf('document.pdf'); Jedes Ergebnis enthält die Seitennummer, auf der der Barcode gefunden wurde.
Was sollte ich tun, wenn die Barcode-Bilder unscharf oder gedreht sind?
Konfigurieren Sie BarcodeReaderOptions, um problematische Bilder zu handhaben, indem Sie AutoRotate = true setzen und Bildfilter wie SharpenFilter oder AdaptiveThresholdFilter anwenden. Verwenden Sie Speed = ExtremeDetail für eine bessere Genauigkeit.
Welche Barcode-Formate werden in .NET-Anwendungen unterstützt?
IronBarcode unterstützt alle wichtigen Barcode-Formate wie QR-Code, Code 128, Code 39, EAN-13, UPC-A, Data Matrix, PDF417 und mehr. Verwenden Sie BarcodeEncoding.All, um nach jedem unterstützten Format zu scannen.
Wie kann ich die Barcode-Scan-Leistung in einer C#-Anwendung verbessern?
Verbessern Sie die Leistung, indem Sie erwartete Barcode-Typen mit ExpectBarcodeTypes angeben, Multithread-Verarbeitung aktivieren und passende Speed-Einstellungen wählen. Für Batch-Aufgaben verwenden Sie BarcodeReader.Read mit Dateipfaden.
Was ist der empfohlene Ansatz für den Umgang mit Barcode-Lesefehlern?
Kapseln Sie das Barcode-Lesen in try-catch-Blöcke und überprüfen Sie, ob die Ergebnisse null oder leer sind. IronBarcode bietet detaillierte Fehlermeldungen und eine Confidence-Eigenschaft zur Anzeige der Erkennungszuverlässigkeit.
Kann ich Barcode-Bilder extrahieren, nachdem sie gescannt wurden?
Ja, IronBarcodes BarcodeResult enthält eine BarcodeImage-Eigenschaft, die ein Bitmap des erkannten Barcodes enthält, das separat gespeichert oder verarbeitet werden kann.
Wie lese ich Barcodes von bestimmten Seiten innerhalb eines PDF-Dokuments?
Setzen Sie die PageNumbers-Eigenschaft in BarcodeReaderOptions, um Seiten festzulegen: options.PageNumbers = new[] {1, 2, 3}; Dies optimiert die Leistung, indem nur die angegebenen Seiten gescannt werden.
Welche Bildformate sind für das Barcode-Scannen in .NET kompatibel?
IronBarcode unterstützt das Scannen in Formaten wie PNG, JPEG, BMP, GIF, TIFF (einschließlich Multiframe) und PDF. Sie können Bilder von Dateipfaden, Streams oder Byte-Arrays laden.
Wie kann ich in C# auf Binärdaten aus gescannten Barcodes zugreifen?
Verwenden Sie die BinaryValue-Eigenschaft von BarcodeResult, um Roh-Binärdaten zu erhalten, insbesondere nützlich für Barcodes, die nicht-textuelle Daten wie komprimierte Informationen oder Binärprotokolle enthalten.

