C# Kullanarak Akışlar Olarak Barkodlar Nasıl Oluşturulur ve IronBarcode Kullanılır

How to Export Barcodes as Streams in C

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

IronBarcode, barkodlar oluşturmanızı ve bunları dosya I/O olmadan doğrudan MemoryStream nesnelerine dönüştürmenizi sağlar, performansı ve güvenliği artırır. Bu daha basit yaklaşım, disk işlemlerini ortadan kaldırır ve uygulamalarla sorunsuz entegrasyon sağlar. Web API'leri oluştururken, toplu işlemleri işlerken veya bulut servisleri ile entegre olunurken, akış tabanlı barkod oluşturma, modern uygulamaların gerektirdiği esnekliği ve verimliliği sağlar.

Hızlı Başlangıç: Barkod Akışı Derhal Dışa Aktarma

IronBarcode'u kullanarak barkod oluşturun ve bir satır kod ile doğrudan bir MemoryStream'ye dönüştürün. Dosya sistemi gerekli değildir.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/BarCode yükleyin

    PM > Install-Package BarCode
  2. Bu kod parçasını kopyalayıp çalıştırın.

    var stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream();
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronBarcode kullanmaya başlayın ücretsiz deneme ile

    arrow pointer


Barkodları Akış Olarak Nasıl Dışa Aktarırım?

İstediğiniz değere sahip barkodu oluşturduktan sonra, ToStream yöntemini kullanarak oluşturulan barkodu bir MemoryStream'ye dönüştürün. Varsayılan format PNG'dir. Bu işlevsellik, özel stil uyguladıktan sonra bile QRCodeWriter ile çalışır. Mevcut tüm yöntemler hakkında kapsamlı dokümantasyon için API Referansine başvurun.

Barkodu Akış Olarak Dışa Aktarma Örneği

: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();
Imports IronBarCode
Imports System.IO

' Create one-dimensional barcode
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("IronBarcode1234", BarcodeEncoding.Code128)

' Convert barcode to stream
Dim barcodeStream As Stream = barcode.ToStream()

' Create QR code
Dim qrCode As GeneratedBarcode = QRCodeWriter.CreateQrCode("IronBarcode1234")

' Convert QR code to stream
Dim qrCodeStream As Stream = qrCode.ToStream()
$vbLabelText   $csharpLabel

Dosyalar Yerine Akışları Neden Kullanmalıyım?

Akışlar ile dosya sistemi bağımlılıkları ortadan kaldırılır ve daha iyi performans için bellek içi işlem sağlanır. Bu yaklaşım, web uygulamaları, API'ler ve geçici dosya oluşturmanın kısıtlı veya istenmeyen olduğu senaryolar için idealdir. Akış tabanlı işleme birkaç avantaj sunar:

  • Artırılmış Güvenlik: Diskte hassas verileri açığa çıkarabilecek geçici dosyalar yok
  • Daha İyi Performans: Doğrudan bellek işlemleri disk I/O'dan daha hızlıdır
  • Bulut Uyumluluğu: Konteynerleşmiş ve sunucusuz ortamlarda sorunsuz çalışır
  • Kaynak Verimliliği: Disk alanı kullanımı ve dosya sistemi yükünü azaltır

Barkodlar İçin Ne Zaman MemoryStream Kullanmalıyım?

Bellekte barkod işlemeniz, HTTP yanıtlarına doğrudan göndermeniz veya geçici dosyalar oluşturmadan diğer akış tabanlı API'lerle entegre olmanız gerektiğinde MemoryStream kullanın. Yaygın senaryolar şunlardır :

  • Web API Yanıtları: Barkodları diske kaydetmeden doğrudan HTTP cevaplarında döndürün
  • Veritabanı Depolama: Barkod verilerini veritabanında ikili bloblar olarak saklayın
  • E-posta Ekleri: Barkodları anında oluşturun ve e-postalara ekleyin
  • Bulut Depolama: Azure Blob Storage, AWS S3 veya benzeri hizmetlere doğrudan yükleyin
  • Gerçek Zamanlı İşleme: Anında tüketim için kalıcı saklama olmadan barkod oluşturun

Hangi Görüntü Formatlarını Akış olarak Dışa Aktarabilirim?

IronBarcode, akış dışa aktarması için birden fazla çıktı veri formatı destekler. Çeşitli yöntemler barkod nesnesini bir MemoryStream'ye dönüştürür. Bu yöntemler süreci basitleştirir ve istediğiniz görüntü formatına göre seçim yapmanıza olanak tanır. Mevcut yöntemler şunları içerir:

Yöntem Format Tanım
BinaryStream özelliği Bitmap Barkodun Bitmap görüntü olarak işlenmiş bir System.IO.Stream'sini döndürür
ToGifStream() GIF GIF görüntü formatı için
ToJpegStream() JPEG/JPG JPEG/JPG görüntü formatı için
ToPdfStream() PDF PDF belge formatı için
ToPngStream() PNG PNG görüntü formatı için
ToStream() PNG (varsayılan) Varsayılan olarakPNGgörüntü formatı için. İstenen formatı belirtmek için argüman olarak AnyBitmap.ImageFormat enum alanını kabul eder
ToTiffStream() TIFF TIFF görüntü formatı için

Barkodu Çeşitli Görüntü Formatlarında Akış Olarak Dışa Aktarma

JPEG görüntü formatında akış çıkışı yapmak için ToJpegStream ve ToStream yöntemlerini kullanın:

: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();
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.IO

' Create one-dimensional barcode
Private barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("IronBarcode1234", BarcodeEncoding.Code128)

' Convert barcode to JPEG stream
Private barcodeStream As Stream = barcode.ToStream(AnyBitmap.ImageFormat.Jpeg)

' Create QR code
Private qrCode As GeneratedBarcode = QRCodeWriter.CreateQrCode("IronBarcode1234")

' Convert QR code to JPEG stream
Private qrCodeStream As Stream = qrCode.ToJpegStream()
$vbLabelText   $csharpLabel

Gelişmiş Akış Dışa Aktarma Örnekleri

Bu kapsamlı örnek, çeşitli veri türlerinden barkod oluşturmayı ve farklı formatlarda akış olarak dışa aktarmayı göstermektedir:

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();
            }
        }
    }
}
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Drawing.Imaging

Public Class BarcodeStreamExporter
    Public Shared Sub ExportMultipleFormats()
        ' Generate barcode with custom data
        Dim 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
        Dim pngStream As Stream = myBarcode.ToPngStream()
        Dim jpegStream As Stream = myBarcode.ToJpegStream()
        Dim pdfStream As Stream = myBarcode.ToPdfStream()
        Dim tiffStream As Stream = myBarcode.ToTiffStream()

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

    Public Shared Function GenerateQRCodeBytes(data As String) As Byte()
        ' Create QR code with error correction
        Dim qrCode = QRCodeWriter.CreateQrCodeWithLogo(data, "logo.png", 500)

        ' Convert to byte array via stream
        Using stream = qrCode.ToStream()
            Using memoryStream As New MemoryStream()
                stream.CopyTo(memoryStream)
                Return memoryStream.ToArray()
            End Using
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Doğru Formatı Nasıl Seçebilirim?

Gereksinimlerinize göre uygun formatı seçin:

  • PNG: Web kullanımı için en iyisidir, şeffaflığı destekler, kayıpsız sıkıştırma
  • JPEG: Daha küçük dosya boyutları, şeffaflık gerekmediğinde idealdir
  • PDF: Belge entegrasyonu, raporlar ve basılabilir formatlar için mükemmel
  • TIFF: Yüksek kaliteli arşivleme amaçları, çok sayfalı destek
  • GIF: Sınırlı renk paleti, animasyonlu basit barkodlar için uygundur

Yaygın Akış İşleme Senaryoları Nelerdir?

Akış tabanlı barkod işleme, çok sayıda pratik uygulama sağlar:

  1. Doğrudan HTTP Yanıtı: Barkodları, aracı depolama olmadan web istemcilerine sunun
  2. Veritabanı İkili Depolama: Barkod verilerini BLOB alanları olarak saklayın
  3. Bellek Tabanlı Önbellekleme: Yüksek performans senaryoları için oluşturulan barkodları önbelleğe alın
  4. Akış Zincirleme: Barkodları dönüşüm hatlarından geçirerek işleyin
  5. Toplu İşleme: Disk G/Ç olmadan binlerce barkod üretin

Akış Verileri ile Çalışma

Akışlarla çalışırken, akışlardan barkod okumaya gerek duyabilirsiniz. İşte gidiş-geliş işlemenin bir örneği:

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();
    }
}
Imports IronBarCode
Imports System.IO
Imports System.Collections.Generic

Public Class StreamRoundTrip
    Public Shared Sub ProcessBarcodeStream()
        ' Generate barcode and get stream
        Dim originalBarcode = BarcodeWriter.CreateBarcode("STREAM-TEST-123", BarcodeEncoding.Code128)
        Dim barcodeStream As Stream = originalBarcode.ToStream()

        ' Read barcode back from stream
        Dim results = BarcodeReader.Read(barcodeStream)

        For Each result In results
            Console.WriteLine($"Value: {result.Value}")
            Console.WriteLine($"Format: {result.BarcodeType}")
        Next

        ' Don't forget to dispose of the stream
        barcodeStream.Dispose()
    End Sub
End Class
$vbLabelText   $csharpLabel

Performans Dikkatleri

Barkodları akış olarak dışa aktarırken, bu performans ipuçlarını göz önünde bulundurun:

  • Yayınları Yeniden Kullan: Daha iyi performans için başlangıç kapasitesi ile MemoryStream kullanın
  • Asenkron İşlemler: Büyük hacimler ile çalışırken asenkron yöntemler kullanın
  • Akış Havuzlama: Yüksek frekanslı işlemler için akış havuzlamayı uygulayın
  • Format Seçimi: Formatları akıllıca seçin—PNG genelde PDF'den daha hızlıdır

IronBarcode ile Başlarken

Projelerinizde akış tabanlı barkod oluşturmayı başlatmak için, kapsamlı başlangıç kılavuzumuzu ziyaret edin. barkodu akış olarak dışa aktarma dokümentasyonu, akış tabanlı iş akışları için ek örnekler ve en iyi uygulamalar sağlar.

IronBarcode, barkod oluşturmayı ve bunları MemoryStream nesnelerine aktarmayı basit hale getirir. Bu akış tabanlı yaklaşım, üstün performans, gelişmiş güvenlik ve modern bulut tabanlı uygulamalarla sorunsuz entegrasyon sunar.

Sıkça Sorulan Sorular

Bir barkodu diske kaydetmeden bir MemoryStream'e nasıl dönüştürebilirim?

IronBarcode ile bir barkodu doğrudan ToStream() yöntemi kullanarak bir MemoryStream'e dönüştürebilirsiniz. Basitçe barkodunuzu BarcodeWriter.CreateBarcode() ile oluşturun ve sonuç üzerinde ToStream() çağrısı yapın. Bu varsayılan olarak bir PNG akışı üretir, dosya G/Ç işlemleri olmadan.

Barkodları akışa dönüştürürken hangi görüntü formatlarını dışa aktarabilirim?

IronBarcode, barkodları akışlara birden çok formatta dışa aktarmayı destekler. ToStream() yöntemi kullanıldığında varsayılan format PNG'dir. Uygulamanızın gereksinimlerine bağlı olarak esneklik sağlayan, farklı görüntü türleri için tasarlanmış özel yöntemler kullanarak başka formatlara da dışa aktarabilirsiniz.

Stream tabanlı barkod üretimini neden dosya tabanlı yöntemler yerine kullanmalıyım?

IronBarcode ile stream tabanlı barkod üretimi, geçici dosyalardan kaçınarak daha yüksek güvenlik, doğrudan bellek işlemleriyle daha iyi performans, kapsayıcı tabanlı ortamlar için sorunsuz bulut uyumluluğu ve disk alanı kullanımını ve dosya sistemi yükünü azaltarak daha iyi kaynak verimliliği sunar.

QR kodları akış olarak dışa aktarmadan önce özel stil uygulayabilir miyim?

Evet, IronBarcode QR kodlarını akış olarak dışa aktarmadan önce özel stil uygulamanıza izin verir. QRCodeWriter, tüm stil seçeneklerini destekler ve ToStream() yöntemi, istediğiniz özelleştirmeleri uyguladıktan sonra sorunsuz çalışır, akış çıktısında stilize edilmiş görünümü korur.

Barkodları MemoryStream olarak dışa aktarmanın yaygın kullanım senaryoları nelerdir?

IronBarcode'un akış dışa aktarma özelliği, barkodları doğrudan HTTP yanıtlarında döndürmeniz gereken web API yanıtları, veri tabanlarında ikili bloklar olarak saklama, e-posta ekleri ve dosya sistemi erişiminin kısıtlandığı bulut hizmetleri veya serverless ortamlarla entegrasyon için idealdir.

Barkod akışını sadece bir satır kodla nasıl oluştururum?

IronBarcode, bir satırlık barkod akışı oluşturmayı şu şekilde sağlar: BarcodeWriter.CreateBarcode("Your Value", BarcodeEncoding.Code128).ToStream(). Bu, belirtilen değer ve kodlamayla bir barkod oluşturur ve ardından doğrudan bir MemoryStream'e dönüştürür, ara adımlar olmadan.

Hairil Hasyimi Bin Omar
Yazılım Mühendisi
Tüm harika mühendisler gibi, Hairil de hevesli bir öğrenendir. C#, Python ve Java bilgilerini keskinleştiriyor ve bu bilgilerini, Iron Software ekibi genelinde takım üyelerine değer katmak için kullanıyor. Hairil, Malezya'daki Universiti Teknologi MARA'dan mezun olan Ek Kimya ve Süreç Mühendisliği ...
Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,169,908 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package BarCode
bir örnek çalıştırın dize barkod haline geldiğini görün.