How to Export Barcodes as Streams in C
IronBarcode, BARCODE'lar oluşturmanıza ve bunları dosya I/O'su olmadan doğrudan MemoryStream nesnelerine dönüştürmenize olanak tanıyarak performans ve güvenliği artırır. Bu basitleştirilmiş yaklaşım, disk işlemlerini ortadan kaldırır ve uygulamalarla sorunsuz entegrasyona olanak tanır. İster web API'leri oluşturun, toplu işlemleri işleyin, ister bulut hizmetleri ile entegre edin, akış tabanlı barkod oluşturma, modern uygulamaların gerektirdiği esneklik ve verimliliği sağlar.
Hızlı Başlangıç: Barkodu Hemen Bir Akışa Aktarma
Using IronBarcode, bir BarCode oluşturun ve tek satırlık bir kodla doğrudan MemoryStream formatına dönüştürün. Dosya sistemi gerekmiyor.
-
IronBarcode aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package BarCode -
Bu kod parçacığını kopyalayın ve çalıştırın.
var stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream(); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronBarcode kullanmaya başlayın
Asgari İş Akışı (5 adım)
- Barkodları akış olarak dışa aktarmak için C# kütüphanesini indirin
- Giriş 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ı bir akış olarak dışa aktarmak için özel yöntemler kullanın
- Akış verilerine daha fazla işleme uygulayın
Barkodları Nasıl Akış Olarak Dışa Aktarırım?
İstenen değere sahip BARCODE'ı oluşturduktan sonra, ToStream yöntemini kullanarak oluşturulan BARCODE'ı MemoryStream'ye dönüştürün. Varsayılan format PNG'dir. Bu işlevsellik, özel stil uygulandıktan sonra bile QRCodeWriter ile çalışır. Mevcut tüm yöntemler hakkında kapsamlı dökümantasyon için API Referansı'na başvurun.
Akış Olarak Barkod 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 Neden Akışlar Kullanılır?
Akışların kullanılması, dosya sistemi bağımlılıklarını ortadan kaldırır ve daha iyi performans için bellek içi işleme sağlar. Bu yaklaşım, geçici dosya oluşturulmasının kısıtlandığı veya istenmediği web uygulamaları, API'ler ve senaryolar için idealdir. Akış tabanlı işlemenin birkaç avantajı vardır:
- Geliştirilmiş Güvenlik: Diskteki 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: Konteynerli ve sunucusuz ortamlarda sorunsuz çalışır
- Kaynak Verimliliği: Disk alanı kullanımını ve dosya sistemi yükünü azaltır
Barkodlar İçin MemoryStream'i Ne Zaman Kullanmalıyım?
BarCode'ları bellekte işlemek, doğrudan HTTP yanıtlarına göndermek veya geçici dosyalar oluşturmadan diğer akış tabanlı API'lerle entegre etmek istediğinizde MemoryStream kullanın. Yaygın senaryolar şunları içerir:
- Web API Yanıtları: Diskte kaydetmeden doğrudan HTTP yanıtlarında barkodları döndürün
- Veritabanı Depolama: Barkod verilerini veritabanlarında ikili bloblar olarak saklayın
- E-posta Ekleri: E-postalara barkodları hızlıca oluşturun ve ekleyin
- Bulut Depolama: Doğrudan Azure Blob Storage, AWS S3 veya benzeri hizmetlere yükleyin
- Gerçek Zamanlı İşleme: Anında tüketim için kalıcı olmadan barkod oluşturun
Hangi Görüntü Formatlarını Akış Olarak Dışa Aktarabilirim?
IronBarcode, akış dışa aktarımı için birden fazla çıkış veri formatını destekler. BarCode nesnesini MemoryStream'ye dönüştüren birkaç yöntem vardır. Bu yöntemler süreci basitleştirir ve istenen görüntü formatına göre seçim yapmanıza izin verir. Mevcut yöntemler şunlardır:
| Yöntem | Biçim | Açıklama |
|---|---|---|
| BinaryStream özelliği | Bitmap | Bitmapgörüntüsü olarak işlenen BARCODE'un System.IO.Stream değerini döndürür |
ToGifStream() |
GIF | GIFgörüntü formatı için |
ToJpegStream() |
JPEG/JPG | JPEG/JPGgörüntü formatı için |
ToPdfStream() |
PDFbelge formatı için | |
ToPngStream() |
PNG | PNGgörüntü formatı için |
ToStream() |
PNG(varsayılan) | Varsayılan olarakPNGgörüntü formatı için. İstenilen formatı belirtmek için AnyBitmap.ImageFormat enum alanını kabul eder |
ToTiffStream() |
TIFF | TIFFgörüntü formatı için |
Çeşitli Görüntü Formatlarında Akış Olarak Barkod Dışa Aktarma
Akışları JPEG görüntü biçiminde çıkarmak 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ış İhracat Örnekleri
Bu kapsamlı örnek, çeşitli veri türlerinden bar kodları oluşturmayı ve farklı formatlarda akış olarak ihraç etmeyi gösterir:
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çerim?
Gereksinimlerinize göre uygun formatı seçin:
- PNG: Web kullanımı için en iyisi, şeffaflık destekler, kayıpsız sıkıştırma
- JPEG: Daha küçük dosya boyutları, şeffaflık gerekmediğinde ideal
- PDF: Belge entegrasyonu, raporlar ve yazdırı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 uygun
Yaygın Akış İşleme Senaryoları Nelerdir?
Akış tabanlı barkod işlemi, birçok pratik uygulamayı mümkün kılar:
- Doğrudan HTTP Yanıtı: Ara depolama olmadan web müşterilerine barkod sunar
- Veritabanı İkili Depolama: Barkod verilerini BLOB alanları olarak depolayın
- Bellek Tabanlı Önbellekleme: Yüksek performans senaryoları için üretilen barkodları önbelleğe alma
- Akış Zincirleme: Barkodları dönüşüm hatları aracılığıyla işleyin
- Toplu İşleme: Disk G/Ç olmadan binlerce barkod oluşturun
Akış Verileriyle Çalışmak
Akışlarla çalışırken, akışlardan barkod okumaya ihtiyacınız olabilir. İşte gidiş-dönüş 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 Hususları
Barkodları akış olarak ihraç ederken, aşağıdaki performans ipuçlarını dikkate alın:
- Akışları Yeniden Kullanma: Daha iyi performans için
MemoryStreamile başlangıç kapasitesini kullanın - Asenkron İşlemler: Büyük hacimlerle uğraşırken asenkron yöntemleri kullanın
- Akış Havuzlama: Yüksek frekanslı işlemler için akış havuzlama uygulayın
- Format Seçimi: Formatları akıllıca seçin—PNG genellikle PDF'den daha hızlıdır
IronBarcode ile Başlarken
Projelerinizde akış tabanlı barkod oluşturma kullanmaya başlamak için kapsamlı başlama kılavuzumuzu ziyaret edin. Barkodu akış olarak ihraç etme belgeleri, akış tabanlı iş akışları için ek örnekler ve en iyi uygulamaları sağlar.
IronBarcode, BarCode'ları oluşturmayı ve MemoryStream nesnelerine aktarmayı kolaylaştırır. Bu akış tabanlı yaklaşım, üstün performans, artırılmış güvenlik ve modern bulut tabanlı uygulamalarla sorunsuz entegrasyon sunar.
Sıkça Sorulan Sorular
Barkodu diske kaydetmeden nasıl MemoryStream'e dönüştürebilirim?
IronBarcode ile, ToStream() metodunu kullanarak bir barkodu doğrudan MemoryStream'e dönüştürebilirsiniz. Barkodunuzu BarcodeWriter.CreateBarcode() ile oluşturun ve sonucu üzerine ToStream() metodunu çağırın. Bu, varsayılan olarak herhangi bir dosya I/O işlemi olmadan bir PNG stream'i oluşturur.
Barkodları stream'lere dönüştürdüğümde hangi görüntü formatlarını dışa aktarabilirim?
IronBarcode, barkodları çeşitli formatlarda stream'lere dışa aktarmayı destekler. Varsayılan format, ToStream() metodunu kullanırken PNG'dir. Uygulamanızın gereksinimlerine bağlı esneklik sağlayarak farklı görüntü türleri için özel olarak tasarlanmış metodları kullanarak başka formatlara da dışa aktarabilirsiniz.
Neden akış tabanlı barkod oluşturma, dosya tabanlı yöntemlere göre kullanmalıyım?
IronBarcode ile akış tabanlı barkod oluşturma, geçici dosyalardan kaçınarak artan güvenlik, doğrudan hafıza işlemleriyle daha iyi performans, konteynerleştirilmiş 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ı stream'lere aktarmadan önce özel stiller uygulayabilir miyim?
Evet, IronBarcode, QR kodlarına stream'lere aktarmadan önce özel stil uygulamanıza olanak tanır. QRCodeWriter, tüm stil seçeneklerini destekler ve ToStream() işlemi, istediğiniz özelleştirmeler uygulandıktan sonra sorunsuz çalışır, stilize edilmiş görünümü stream çıktısında devam ettirir.
MemoryStream olarak barkodları dışa aktarmanın yaygın kullanım durumları nelerdir?
IronBarcode'un akış dışa aktarma özelliği, HTTP yanıtlarında barkodları doğrudan döndürmeniz gerektiğinde, veri tabanı depolama için ikili bloblar olarak, e-posta ekleri ve bulut hizmetleri veya dosya sistemine erişimin kısıtlandığı sunucusuz ortamlarla entegrasyon için idealdir.
Sadece tek bir satır kodla barkod akışı nasıl oluştururum?
IronBarcode, tek satırlık barkod akışı oluşturmaya olanak tanır: BarcodeWriter.CreateBarcode("Değeriniz", BarcodeEncoding.Code128).ToStream(). Bu, belirttiğiniz değeri ve kodlamayı içeren bir barkod oluşturur, ardından hemen bir MemoryStream'e ara adım olmadan dönüştürür.
IronBarcode barkod görünümünü özelleştirme desteği sağlıyor mu?
Evet, IronBarcode, barkod görünümünü özelleştirmek için renk, boyut ve metin notları gibi geniş seçenekler sunar, bu da barkodları belirli tasarım gereksinimlerinize göre uyarlamanıza imkan tanır.
IronBarcode, iş süreçlerindeki verimliliği artırmaya nasıl yardımcı olabilir?
IronBarcode, hızlı ve doğru barkod üretimi ve okuma yeteneği sağlayarak, manuel veri girişi hatalarını azaltır ve envanter ile varlık takibini iyileştirerek iş süreçlerinin verimliliğini artırır.
Bir projede IronBarcode'u uygulamak için hangi programlama becerileri gereklidir?
IronBarcode'u bir projede uygulamak için temel C# programlama bilgisi yeterlidir, çünkü bu kütüphane, geliştiricilere rehberlik eden basit yöntemler ve kapsamlı belgeler sağlar.
IronBarcode, hem küçük projeler hem de büyük kurumsal uygulamalar için uygun mu?
IronBarcode, küçük projeler kadar geniş çaplı kurumsal uygulamalar için de uygun, ölçeklenebilir ve çok yönlü olacak şekilde tasarlanmıştır ve sağlam barkod çözümleri gerektiren uygulamalara hizmet eder.

