Wie man Barcodes als Streams in C# mit IronBarcode erstellt

BarCodes als Streams in C# exportieren

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

IronBarcode ermöglicht es Ihnen, Barcodes zu generieren und sie direkt in MemoryStream-Objekte zu konvertieren, ohne Datei-E/A, was die Leistung und Sicherheit verbessert. Durch diesen rationalisierten Ansatz werden Diskettenoperationen vermieden und eine nahtlose Integration in Anwendungen ermöglicht. Ob beim Aufbau von Web-APIs, bei der Verarbeitung von Stapelverarbeitungsvorgängen oder bei der Integration mit Cloud-Diensten - die strombasierte Barcode-Erzeugung bietet die Flexibilität und Effizienz, die moderne Anwendungen benötigen.

als-Überschrift:2(Schnellstart: Barcode sofort in einen Stream exportieren)

Verwenden Sie IronBarcode, um einen Barcode zu erzeugen und ihn mit einer Zeile Code direkt in einen MemoryStream zu konvertieren. Kein Dateisystem erforderlich.

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 stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream();
  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 exportiere ich BarCodes als Streams?

Sobald Sie den BarCode mit dem gewünschten Wert erstellt haben, verwenden Sie die Methode ToStream, um den generierten BarCode in einen MemoryStream zu konvertieren. Das Standardformat ist PNG. Diese Funktionalität funktioniert auch mit QRCodeWriter, selbst nach Anwendung von benutzerdefiniertem Styling. Eine umfassende Dokumentation zu allen verfügbaren Methoden finden Sie in der API-Referenz.

Beispiel: BarCode als Stream exportieren

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-as-stream-to-stream.cs
using IronBarCode;
using System.IO;

// Create one-dimensional barcode
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("IronBarcode1234", BarcodeEncoding.Code128);

// Convert barcode to stream
Stream barcodeStream = barcode.ToStream();

// Create QR code
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode("IronBarcode1234");

// Convert QR code to stream
Stream qrCodeStream = qrCode.ToStream();
$vbLabelText   $csharpLabel

Warum Streams anstelle von Dateien verwenden?

Durch die Verwendung von Streams werden Abhängigkeiten vom Dateisystem beseitigt und eine speicherinterne Verarbeitung für eine bessere Leistung ermöglicht. Dieser Ansatz ist ideal für Webanwendungen, APIs und Szenarien, in denen die Erstellung temporärer Dateien eingeschränkt oder unerwünscht ist. Strombasierte Verarbeitung bietet mehrere Vorteile:

  • Verbesserte Sicherheit: Keine temporären Dateien auf der Festplatte, die sensible Daten preisgeben könnten
  • Bessere Leistung: Direkte Speicheroperationen sind schneller als Festplatten-E/A
  • Cloud-Kompatibilität: Funktioniert nahtlos in containerisierten und serverlosen Umgebungen
  • Ressourceneffizienz: Reduziert den Speicherplatzbedarf und den Overhead des Dateisystems

Wann sollte ich MemoryStream für BarCodes verwenden?

Verwenden Sie MemoryStream, wenn Sie Barcodes im Speicher verarbeiten, sie direkt an HTTP-Antworten senden oder mit anderen Stream-basierten APIs integrieren möchten, ohne temporäre Dateien zu erstellen. Häufige Szenarien sind:

  • Web API Antworten: Geben Sie BarCodes direkt in HTTP-Antworten zurück, ohne sie auf der Festplatte zu speichern
  • Datenbankspeicherung: Speichern von BarCode-Daten als binäre Blobs in Datenbanken
  • E-Mail-Anhänge: Erzeugen und Anhängen von BarCodes an E-Mails im Handumdrehen
  • Cloud-Speicher: Direktes Hochladen auf Azure Blob Storage, AWS S3 oder ähnliche Dienste
  • Echtzeit-Verarbeitung: Generierung von BarCodes zum sofortigen Verbrauch ohne Persistenz

Welche Bildformate kann ich in Streams exportieren?

IronBarcode unterstützt mehrere Ausgabedatenformate für den Stream-Export. Mehrere Methoden konvertieren das BarCode-Objekt in einen MemoryStream. Diese Methoden vereinfachen den Prozess und ermöglichen es Ihnen, das gewünschte Bildformat zu wählen. Zu den verfügbaren Methoden gehören:

Methode Format Beschreibung
BinaryStream Eigenschaft Bitmap Gibt einen System.IO.Stream des Barcodes zurück, der als Bitmap-Bild gerendert wurde
ToGifStream() GIF Für das GIF-Bildformat
ToJpegStream() JPEG/JPG Für das Bildformat JPEG/JPG
ToPdfStream() PDF Für das PDF-Dokumentenformat
ToPngStream() PNG Für das PNG-Bildformat
ToStream() PNG(Standard) Standardmäßig für das Bildformat PNG. Akzeptiert AnyBitmap.ImageFormat enum Feld als Argument, um das gewünschte Formatzu spezifizieren
ToTiffStream() TIFF Für das TIFF-Bildformat

BarCode als Stream in verschiedene Bildformate exportieren

Verwenden Sie die Methoden ToJpegStream und ToStream, um Streams im JPEG-Bildformat auszugeben:

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-as-stream-to-jpeg-stream.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.IO;

// Create one-dimensional barcode
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("IronBarcode1234", BarcodeEncoding.Code128);

// Convert barcode to JPEG stream
Stream barcodeStream = barcode.ToStream(AnyBitmap.ImageFormat.Jpeg);

// Create QR code
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode("IronBarcode1234");

// Convert QR code to JPEG stream
Stream qrCodeStream = qrCode.ToJpegStream();
$vbLabelText   $csharpLabel

Erweiterte Stream-Export-Beispiele

Dieses umfassende Beispiel zeigt, wie man Barcodes aus verschiedenen Datentypen erstellt und als Streams in verschiedenen Formaten exportiert:

using IronBarCode;
using IronSoftware.Drawing;
using System.IO;
using System.Drawing.Imaging;

public class BarcodeStreamExporter
{
    public static void ExportMultipleFormats()
    {
        // Generate barcode with custom data
        var myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-2024-001", BarcodeEncoding.Code128);

        // Apply styling
        myBarcode.ResizeTo(300, 150);
        myBarcode.SetMargins(10);
        myBarcode.AddAnnotationTextAboveBarcode("Product ID");

        // Export to different stream formats
        Stream pngStream = myBarcode.ToPngStream();
        Stream jpegStream = myBarcode.ToJpegStream();
        Stream pdfStream = myBarcode.ToPdfStream();
        Stream tiffStream = myBarcode.ToTiffStream();

        // Use with HTTP response (ASP.NET Core example)
        // return File(pngStream, "image/png", "barcode.png");
    }

    public static byte[] GenerateQRCodeBytes(string data)
    {
        // Create QR code with error correction
        var qrCode = QRCodeWriter.CreateQrCodeWithLogo(data, "logo.png", 500);

        // Convert to byte array via stream
        using (var stream = qrCode.ToStream())
        {
            using (var memoryStream = new MemoryStream())
            {
                stream.CopyTo(memoryStream);
                return memoryStream.ToArray();
            }
        }
    }
}
using IronBarCode;
using IronSoftware.Drawing;
using System.IO;
using System.Drawing.Imaging;

public class BarcodeStreamExporter
{
    public static void ExportMultipleFormats()
    {
        // Generate barcode with custom data
        var myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-2024-001", BarcodeEncoding.Code128);

        // Apply styling
        myBarcode.ResizeTo(300, 150);
        myBarcode.SetMargins(10);
        myBarcode.AddAnnotationTextAboveBarcode("Product ID");

        // Export to different stream formats
        Stream pngStream = myBarcode.ToPngStream();
        Stream jpegStream = myBarcode.ToJpegStream();
        Stream pdfStream = myBarcode.ToPdfStream();
        Stream tiffStream = myBarcode.ToTiffStream();

        // Use with HTTP response (ASP.NET Core example)
        // return File(pngStream, "image/png", "barcode.png");
    }

    public static byte[] GenerateQRCodeBytes(string data)
    {
        // Create QR code with error correction
        var qrCode = QRCodeWriter.CreateQrCodeWithLogo(data, "logo.png", 500);

        // Convert to byte array via stream
        using (var stream = qrCode.ToStream())
        {
            using (var memoryStream = new MemoryStream())
            {
                stream.CopyTo(memoryStream);
                return memoryStream.ToArray();
            }
        }
    }
}
$vbLabelText   $csharpLabel

Wie wähle ich das richtige Format?

Wählen Sie je nach Ihren Anforderungen das passende Format:

  • PNG: Am besten für die Verwendung im Web geeignet, unterstützt Transparenz, verlustfreie Kompression
  • JPEG: Geringere Dateigröße, ideal, wenn keine Transparenz erforderlich ist
  • PDF: Perfekt für die Integration von Dokumenten, Berichten und druckbaren Formaten
  • TIFF: Hochwertige Archivierungszwecke, Unterstützung von mehreren Seiten
  • GIF: Begrenzte Farbpalette, geeignet für einfache BarCodes mit Animation

Was sind gängige Stream-Processing-Szenarien?

Stream-basierte Barcode-Verarbeitung ermöglicht zahlreiche praktische Anwendungen:

  1. Direkte HTTP-Antwort: Bereitstellung von BarCodes für Web-Clients ohne Zwischenspeicherung
  2. Datenbank-Binärspeicher: Speichern von Barcode-Daten als BLOB-Felder
  3. Speichergestütztes Caching: Cache-generierte BarCodes für Hochleistungsszenarien
  4. Stream Chaining: Verarbeiten von BarCodes durch Transformationspipelines
  5. Stapelverarbeitung: Generieren Sie Tausende von BarCodes ohne Festplatten-E/A

Arbeiten mit Stream-Daten

Wenn Sie mit Streams arbeiten, müssen Sie möglicherweise Barcodes aus Streams lesen. Hier ist ein Beispiel für die Round-Trip-Verarbeitung:

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

public class StreamRoundTrip
{
    public static void ProcessBarcodeStream()
    {
        // Generate barcode and get stream
        var originalBarcode = BarcodeWriter.CreateBarcode("STREAM-TEST-123", BarcodeEncoding.Code128);
        Stream barcodeStream = originalBarcode.ToStream();

        // Read barcode back from stream
        var results = BarcodeReader.Read(barcodeStream);

        foreach (var result in results)
        {
            Console.WriteLine($"Value: {result.Value}");
            Console.WriteLine($"Format: {result.BarcodeType}");
        }

        // Don't forget to dispose of the stream
        barcodeStream.Dispose();
    }
}
using IronBarCode;
using System.IO;
using System.Collections.Generic;

public class StreamRoundTrip
{
    public static void ProcessBarcodeStream()
    {
        // Generate barcode and get stream
        var originalBarcode = BarcodeWriter.CreateBarcode("STREAM-TEST-123", BarcodeEncoding.Code128);
        Stream barcodeStream = originalBarcode.ToStream();

        // Read barcode back from stream
        var results = BarcodeReader.Read(barcodeStream);

        foreach (var result in results)
        {
            Console.WriteLine($"Value: {result.Value}");
            Console.WriteLine($"Format: {result.BarcodeType}");
        }

        // Don't forget to dispose of the stream
        barcodeStream.Dispose();
    }
}
$vbLabelText   $csharpLabel

Erwägungen zur Leistung

Beachten Sie beim Exportieren von BarCodes als Streams die folgenden Leistungstipps:

  • Streams wiederverwenden: Verwenden Sie MemoryStream mit anfänglicher Kapazität für bessere Leistung
  • Async-Operationen: Verwenden Sie asynchrone Methoden, wenn Sie mit großen Datenmengen arbeiten
  • Stream Pooling: Implementierung von Stream Pooling für hochfrequente Operationen
  • Formatauswahl: Wählen Sie die Formate mit Bedacht - PNGist im Allgemeinen schneller als PDF

Einstieg mit IronBarcode

Um mit der stream-basierten Barcode-Erzeugung in Ihren Projekten zu beginnen, besuchen Sie unseren umfassenden Leitfaden für den Einstieg. Die Dokumentation zum Exportieren von Barcodes als Stream enthält zusätzliche Beispiele und Best Practices für Stream-basierte Arbeitsabläufe.

IronBarcode erleichtert das Erstellen und Exportieren von Barcodes in MemoryStream-Objekte. Dieser Stream-basierte Ansatz bietet überlegene Leistung, verbesserte Sicherheit und nahtlose Integration mit modernen Cloud-nativen Anwendungen.

Häufig gestellte Fragen

Wie kann ich einen BarCode in einen MemoryStream konvertieren, ohne ihn auf der Festplatte zu speichern?

Mit IronBarcode können Sie einen Barcode direkt in einen MemoryStream konvertieren, indem Sie die Methode ToStream() verwenden. Erstellen Sie einfach Ihren Barcode mit BarcodeWriter.CreateBarcode() und rufen Sie ToStream() für das Ergebnis auf. Dies erzeugt standardmäßig einen PNG-Stream ohne jegliche Datei-E/A-Operationen.

Welche Bildformate kann ich bei der Umwandlung von Barcodes in Streams exportieren?

IronBarcode unterstützt den Export von Barcodes in Streams in verschiedenen Formaten. Das Standardformat ist PNG, wenn Sie die Methode ToStream() verwenden. Sie können auch in andere Formate exportieren, indem Sie spezielle Methoden verwenden, die für verschiedene Bildtypen entwickelt wurden, so dass Sie flexibel auf die Anforderungen Ihrer Anwendung reagieren können.

Warum sollte ich Stream-basierte Barcode-Generierung anstelle von dateibasierten Methoden verwenden?

Die streambasierte Barcode-Generierung mit IronBarcode bietet erhöhte Sicherheit durch die Vermeidung temporärer Dateien, bessere Leistung durch direkte Speicheroperationen, nahtlose Cloud-Kompatibilität für containerisierte Umgebungen und verbesserte Ressourceneffizienz durch die Verringerung der Festplattenplatznutzung und des Dateisystem-Overheads.

Kann ich ein benutzerdefiniertes Styling anwenden, bevor ich QR-Codes als Streams exportiere?

Ja, IronBarcode ermöglicht es Ihnen, QR-Codes vor dem Export als Streams mit einem benutzerdefinierten Styling zu versehen. Der QRCodeWriter unterstützt alle Styling-Optionen, und die ToStream()-Methode funktioniert nahtlos nach der Anwendung Ihrer gewünschten Anpassungen, wobei das gestylte Erscheinungsbild in der Stream-Ausgabe beibehalten wird.

Was sind häufige Anwendungsfälle für den Export von BarCodes als MemoryStreams?

Die Stream-Exportfunktion von IronBarcode ist ideal für Web-API-Antworten, bei denen Barcodes direkt in HTTP-Antworten zurückgegeben werden müssen, für die Speicherung in Datenbanken als binäre Blobs, für E-Mail-Anhänge und für die Integration mit Cloud-Diensten oder serverlosen Umgebungen, in denen der Zugriff auf das Dateisystem eingeschränkt ist.

Wie erstelle ich einen Barcode-Stream in nur einer Codezeile?

IronBarcode ermöglicht die Erstellung eines einzeiligen Barcode-Streams mit: BarcodeWriter.CreateBarcode("Your Value", BarcodeEncoding.Code128).ToStream(). Dies erzeugt einen Barcode mit dem von Ihnen angegebenen Wert und der Kodierung und konvertiert ihn dann sofort in einen MemoryStream ohne Zwischenschritte.

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,035,202 | Version: 2025.12 gerade veröffentlicht