Wie man Barcodes aus Streams in C# liest

Lesen von BarCodes aus Datenströmen mit C#

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

IronBarcode liest Barcodes direkt aus MemoryStream-Objekten in .NET-Anwendungen, wodurch die Notwendigkeit entfällt, Streams zunächst auf der Festplatte zu speichern. Dies ermöglicht eine effiziente Verarbeitung von Barcodes aus Bild- und PDF-Dokumentenströmen, die im Speicher abgelegt sind.

MemoryStream ist eine Klasse des .NET Frameworks, die aus speichergespeicherten Streams liest und in diese schreibt. Es manipuliert Daten ohne physische Dateien und speichert sie stattdessen im Speicher. Dieser Ansatz eignet sich gut für Webanwendungen, APIs oder Szenarien, in denen Sie Barcodedaten als Byte-Arrays erhalten oder Bilder verarbeiten müssen, ohne temporäre Dateien zu erstellen.

Neben Lesen von Barcodes aus Bilddateien oder PDF-Dateien liest IronBarcode auch Barcodes aus Streams. Die Bibliothek akzeptiert PDF-Dokumente oder Bildströme als Eingabe und gibt die Ergebnisse des Barcode-Lesens aus. Diese Fähigkeit eignet sich für die Verarbeitung von Daten aus Datenbanken, Web-Uploads oder Memory-Cache-Inhalten.

Quickstart: BarCode direkt aus dem Bildstrom lesen

Verwenden Sie zwei Zeilen Code mit IronBarcode, um Barcodes aus einem beliebigen Bildstrom zu lesen - ohne dass die Festplatte beschrieben werden muss. Dieses Beispiel demonstriert das Lesen von Barcodes in .NET.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronBarcode mit dem NuGet-Paketmanager.

    PM > Install-Package BarCode

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var result = IronBarCode.BarcodeReader.Read(myImageStream);
    Console.WriteLine(result[0].Text);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronBarcode in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Wie lese ich BarCodes aus Bildströmen?

Warum Memory Streams anstelle von Dateien verwenden?

Memory Streams bieten mehrere Vorteile gegenüber dateibasierten Operationen. Sie eliminieren den Festplatten-E/A-Overhead und machen Anwendungen schneller. Sie erhöhen die Sicherheit, da die sensiblen Barcodedaten nicht auf die Festplatte gelangen. Sie eignen sich auch für Cloud-Umgebungen, in denen der Festplattenzugriff begrenzt oder teuer ist. In Kombination mit den Async- und Multithreading-Funktionen von IronBarcode können Sie mehrere Datenströme gleichzeitig verarbeiten und so maximale Leistung erzielen.

Dieser Abschnitt zeigt, wie IronBarcode verwendet wird, um einen Bildstrom und mehrere Bildströme zu lesen, die in einer Liste<MemoryStream> gespeichert sind. Der folgende Code enthält Kommentare, um den Prozess zu erklären:

Welche Arten von Bildformaten werden unterstützt?

IronBarcode unterstützt mehrere Bildformate beim Lesen von Streams: JPEG, PNG, GIF, TIFF, BMP und SVG. Diese Flexibilität ermöglicht die Verarbeitung von Barcode-Bildern unabhängig vom Quellformat. Optimale Ergebnisse erzielen Sie, wenn Sie die BarCode-Reader-Einstellungen für die Feinabstimmung des Lesevorgangs verwenden.

using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-1.cs
using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.IO;

List<MemoryStream> list = new List<MemoryStream>();
list.Add(AnyBitmap.FromFile("image1.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image2.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image3.png").ToStream());

var myBarcode = BarcodeReader.Read(list);

foreach (var barcode in myBarcode)
{
    Console.WriteLine(barcode.ToString());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic
Imports System.IO

Friend Class BarcodeFromImageStream
	Shared Sub Main(ByVal args() As String)
		' Create a list of MemoryStreams to store image streams
		Dim imageStreams As New List(Of MemoryStream) From {
			New MemoryStream(File.ReadAllBytes("example1.png")),
			New MemoryStream(File.ReadAllBytes("example2.png"))
		}

Dim IronBarCode As using
Using IronSoftware.Drawing
	Dim System As using
	Using System.Collections.Generic
		Using System.IO
			
			Dim list As New List(Of MemoryStream)()
			list.Add(AnyBitmap.FromFile("image1.jpg").ToStream())
			list.Add(AnyBitmap.FromFile("image2.jpg").ToStream())
			list.Add(AnyBitmap.FromFile("image3.png").ToStream())
			
			Dim myBarcode = BarcodeReader.Read(list)
			
			For Each barcode In myBarcode
				Console.WriteLine(barcode.ToString())
			Next barcode
		End Using
	End Using
End Using
$vbLabelText   $csharpLabel

Wie behandle ich mehrere Bildströme?

Der obige Code zeigt, wie IronBarcode ein einzelnes MemoryStream-Objekt oder eine Liste von MemoryStream-Objekten in der Methode BarcodeReader.Read() akzeptiert. Das Beispiel konvertiert Bilddateien in MemoryStream-Objekte und liest Strichcodes direkt aus den Streams.

Bei der Verarbeitung mehrerer Datenströme nutzt IronBarcode seine Lesegeschwindigkeitsoptionen effizient aus. Passen Sie die Lesegeschwindigkeit an Ihre Bedürfnisse an - ob maximale Genauigkeit oder schnellste Bearbeitungszeit. Zum Lesen mehrerer Barcodes aus einem einzigen Datenstrom erkennt IronBarcode automatisch alle gefundenen Barcodes und gibt sie zurück.

Um die Genauigkeit bei unvollkommenen oder qualitativ schlechten Bildern in Streams zu verbessern, sollten Sie vor der Verarbeitung Bildkorrekturfilter anwenden. Dies verbessert die Erkennungsraten von Barcodes erheblich.

Wie kann ich BarCodes aus PDF-Dokumentenströmen lesen?

Warum ReadPdf() anstelle von Read() verwenden?

Die Methode ReadPdf() ist speziell für PDF-Dokumente optimiert und bietet Vorteile gegenüber der generischen Methode Read(). PDF-spezifische Funktionen wie mehrseitige Dokumente, Vektorgrafiken und eingebettete Bilder werden effizient behandelt. Die Methode verarbeitet alle PDF-Seiten automatisch und kommt mit verschiedenen PDF-Formaten und Komprimierungsarten zurecht. Umfassende Funktionen finden Sie im Tutorial zum Lesen von Strichcodes.

Dieser Abschnitt demonstriert die Verwendung von IronBarcode zum Lesen von PDF-Dokumenten als MemoryStream-Objekte oder Listen von PDF-Dokumentenströmen. Hier ist der Code:

Was ist mit mehreren PDF-Dokumenten?

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs
using IronBarCode;
using IronPdf;
using System;
using System.IO;

MemoryStream document = PdfDocument.FromFile(@"file_path.pdf").Stream;

var myBarcode = BarcodeReader.ReadPdf(document);

foreach (var value in myBarcode)
{
    Console.WriteLine(value.ToString());
}
Imports IronBarCode
Imports IronPdf
Imports System
Imports System.IO

Private document As MemoryStream = PdfDocument.FromFile("file_path.pdf").Stream

Private myBarcode = BarcodeReader.ReadPdf(document)

For Each value In myBarcode
	Console.WriteLine(value.ToString())
Next value
$vbLabelText   $csharpLabel

Wie kann ich mehrere PDF-Streams effizient verarbeiten?

Das Lesen von Barcodes aus PDF-Dokumenten als MemoryStream-Objekte ähnelt dem Lesen von Bildern. Der Hauptunterschied ist die Methode: BarcodeReader.ReadPdf() behandelt speziell PDF-Dokumente. Das Beispiel verwendet IronPDF, um PDF-Dokumente in MemoryStream-Objekte zu konvertieren.

Bei mehreren PDF-Dokumenten führen Sie alle PDFs in einem Dokumentenstrom zusammen, bevor Sie ihn an BarcodeReader.ReadPdf() übergeben. Dieser Ansatz ist effizienter als jede PDF-Datei einzeln zu bearbeiten und reduziert den Speicherbedarf. Konfigurieren Sie PDF-spezifische Barcode-Leseeinstellungen, um das Lesen Ihrer Dokumente zu optimieren.

Für fortgeschrittene Szenarien können Sie bestimmte Seiten oder PDF-Regionen bearbeiten. IronBarcode ermöglicht das Festlegen von Seitenbereichen und das Ausschneiden von Regionen innerhalb von Seiten, die auf Bereiche ausgerichtet sind, in denen Barcodes erscheinen. Dies verbessert die Verarbeitungsgeschwindigkeit für große Dokumente.

Bei der Verwendung von Streams in der Produktion müssen MemoryStream-Objekte ordnungsgemäß entsorgt werden, um Speicherlecks zu vermeiden. Die Anweisung using sorgt für eine automatische Entsorgung:

using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
Imports System.IO

Using pdfStream As New MemoryStream(pdfBytes)
    Dim results = BarcodeReader.ReadPdf(pdfStream)
    ' Process results
End Using
$vbLabelText   $csharpLabel

Experimentieren Sie und passen Sie die Bibliothek an Ihre spezifischen Bedürfnisse an. Die flexible API von IronBarcode ermöglicht eine umfassende Anpassung des Leseprozesses, von der Anpassung der Erkennungsempfindlichkeit bis zur Angabe der erwarteten Barcodeformate.

Häufig gestellte Fragen

Wie lese ich Barcodes aus Streams, ohne sie vorher auf der Festplatte zu speichern?

IronBarcode ermöglicht es Ihnen, Barcodes direkt aus MemoryStream-Objekten zu lesen, ohne sie auf der Festplatte zu speichern. Übergeben Sie einfach Ihren Stream an die Methode BarcodeReader.Read(). Dieser Ansatz eliminiert den Festplatten-E/A-Overhead und ist ideal für die Verarbeitung von Bildern aus Web-Uploads, Datenbanken oder APIs.

Welche Bildformate unterstützt der Barcodeleser bei der Verarbeitung von Datenströmen?

IronBarcode unterstützt mehrere Bildformate beim Lesen von Streams, darunter JPEG, PNG, GIF, TIFF, BMP und SVG. Diese Flexibilität ermöglicht es Ihnen, Barcode-Bilder aus verschiedenen Quellen ohne Formatkonvertierung zu verarbeiten.

Kann ich mehrere Barcode-Bildströme gleichzeitig verarbeiten?

Ja, IronBarcode unterstützt Async- und Multithreading-Funktionen, so dass Sie mehrere Barcode-Datenströme gleichzeitig verarbeiten können, um maximale Leistung zu erzielen. Dies ist besonders nützlich, wenn Sie große Mengen an Barcode-Lesevorgängen aus dem Speicher verarbeiten.

Welche Vorteile hat die Verwendung von Memory Streams gegenüber dem Lesen von Barcodes auf Dateibasis?

Die Speicherstromverarbeitung mit IronBarcode bietet eine schnellere Leistung durch den Wegfall des Festplatten-E/A-Overheads, eine höhere Sicherheit, da sensible Daten nie den Festplattenspeicher berühren, und eine bessere Kompatibilität mit Cloud-Umgebungen, in denen der Festplattenzugriff begrenzt oder teuer sein kann.

Wie kann ich Barcodes aus PDF-Dokumentenströmen lesen?

IronBarcode kann Barcodes sowohl aus Bild- als auch aus PDF-Dokumentenströmen lesen. Übergeben Sie einfach Ihren PDF-MemoryStream an die Methode BarcodeReader.Read() und IronBarcode extrahiert und dekodiert alle in den PDF-Seiten enthaltenen Barcodes.

Ist es möglich, den Barcode-Leseprozess bei der Arbeit mit Streams zu optimieren?

Ja, IronBarcode bietet anpassbare Barcode-Leseeinstellungen, mit denen Sie den Leseprozess für Ihren speziellen Anwendungsfall optimieren können, unabhängig davon, ob Sie einzelne oder mehrere in Sammlungen gespeicherte Ströme verarbeiten.

Hairil Hasyimi Bin Omar
Software Ingenieur
Wie alle großen Ingenieure ist Hairil ein leidenschaftlicher Lerner. Er verfeinert sein Wissen in C#, Python und Java, um Iron Software-Teammitgliedern Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia, wo er seinen Bachelor in Chemie- und Verfahrenstechnik abschloss.
Bereit anzufangen?
Nuget Downloads 2,070,733 | Version: 2026.2 gerade veröffentlicht