How to Export Barcodes as Streams in C
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.
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/BarCode yükleyin
PM > Install-Package BarCode -
Bu kod parçasını kopyalayıp çalıştırın.
var stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream(); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronBarcode kullanmaya başlayın ücretsiz deneme ile
Minimal Is Akisi (5 adimda)
- Barkodları akış olarak dışa aktarmak için C# kutuphanesini indirin
- Girdi değerlerinden çeşitli barkod türleri oluşturun
- Oluşturulan barkodu bir akışa dönüştürün
- Farklı görüntü formatlarını akış olarak dışa aktarmak için belirli yöntemler kullanın
- Akış verisine daha fazla işlem uygulayın
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()
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 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()
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
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:
- Doğrudan HTTP Yanıtı: Barkodları, aracı depolama olmadan web istemcilerine sunun
- Veritabanı İkili Depolama: Barkod verilerini BLOB alanları olarak saklayın
- Bellek Tabanlı Önbellekleme: Yüksek performans senaryoları için oluşturulan barkodları önbelleğe alın
- Akış Zincirleme: Barkodları dönüşüm hatlarından geçirerek işleyin
- 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
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
MemoryStreamkullanı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.

