Wie man Barcodes aus Streams in C# liest

How to Read Barcodes from Streams with 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 aus, wodurch das vorherige Speichern von Streams auf der Festplatte entfällt. Dies ermöglicht eine effiziente Barcode-Verarbeitung sowohl aus Bild- als auch aus PDF-Dokument-Streams, die im Arbeitsspeicher gespeichert sind.

MemoryStream ist eine .NET Framework-Klasse, die aus im Speicher abgelegten 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.

Schnellstart: Barcode direkt aus Bildstream 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.

  1. Installieren Sie IronBarcode mit NuGet Package Manager

    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, IronBarcode in Ihrem Projekt zu verwenden, 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 man mit IronBarcode einen Bildstrom und mehrere Bildströme liest, die in einem List<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 in der Methode BarcodeReader.Read() ein einzelnes MemoryStream-Objekt oder eine Liste von MemoryStream-Objekten akzeptiert. Das Beispiel konvertiert Bilddateien in MemoryStream-Objekte und liest BarCodes direkt aus den Streams aus.

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 ReadPdf()-Methode ist speziell für PDF-Dokumente optimiert und bietet Vorteile gegenüber der generischen Read()-Methode. 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 veranschaulicht 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 Einlesen von BarCodes aus PDF-Dokumenten als MemoryStream-Objekte ähnelt dem Einlesen aus Bildern. Der wesentliche Unterschied liegt in der Methode: BarcodeReader.ReadPdf() verarbeitet speziell PDF-Dokumente. Das Beispiel verwendet IronPDF, um PDF-Dokumente in MemoryStream-Objekte zu konvertieren.

Bei mehreren PDF-Dokumenten führen Sie alle PDFs zu einem einzigen Dokumentstrom zusammen, bevor Sie diesen 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.

Wenn Sie Streams in der Produktion verwenden, entsorgen Sie MemoryStream-Objekte ordnungsgemäß, um Speicherlecks zu vermeiden. Die Anweisung using gewährleistet die 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.

Bietet IronBarcode Unterstützung für die Anpassung des Barcode-Aussehens?

Ja, IronBarcode bietet umfangreiche Anpassungsoptionen für das Barcode-Aussehen, einschließlich Farbe, Größe und Textanmerkungen, sodass Sie Barcodes an Ihre spezifischen Designanforderungen anpassen können.

Wie kann IronBarcode zur Verbesserung der Effizienz von Geschäftsprozessen beitragen?

IronBarcode erhöht die Effizienz von Geschäftsprozessen, indem es eine schnelle und genaue Barcode-Erzeugung und -Lesen ermöglicht, manuelle Dateneingabefehler reduziert und die Verfolgung von Beständen und Vermögensgegenständen verbessert.

Welche Programmierkenntnisse sind erforderlich, um IronBarcode in einem Projekt zu implementieren?

Grundkenntnisse in C#-Programmierung reichen aus, um IronBarcode in einem Projekt zu implementieren, da es unkomplizierte Methoden und eine umfassende Dokumentation für Entwickler bietet.

Ist IronBarcode sowohl für kleine Projekte als auch für große Unternehmensanwendungen geeignet?

IronBarcode ist so konzipiert, dass es skalierbar und vielseitig ist, wodurch es sich sowohl für kleine Projekte als auch für große Unternehmensanwendungen eignet, die robuste Barcode-Lösungen benötigen.

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,240,258 | Version: 2026.5 just released
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package BarCode
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihre Zeichenkette zu einem BarCode wird.