Jak eksportować kody kreskowe jako strumienie w C
IronBarcode pozwala generować kody kreskowe i konwertować je bezpośrednio do obiektów MemoryStream bez użycia systemu plików, co poprawia wydajność i bezpieczeństwo. To usprawnione podejście eliminuje operacje na dysku i umożliwia płynną integrację z aplikacjami. Niezależnie czy tworzysz webowe API, przetwarzasz operacje wsadowe, czy integrujesz się z usługami w chmurze, generowanie kodów kreskowych oparte na strumieniach zapewnia elastyczność i wydajność, jakiej wymagają nowoczesne aplikacje.
Szybki start: Eksportowanie kodu kreskowego do strumienia natychmiast
Użyj IronBarcode, aby wygenerować kod kreskowy i przekonwertować go bezpośrednio do MemoryStream za pomocą jednej linii kodu. Nie jest wymagany system plików.
-
Install IronBarcode with NuGet Package Manager
PM > Install-Package BarCode -
Skopiuj i uruchom ten fragment kodu.
var stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream(); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do eksportowania kodów kreskowych jako strumień
- Twórz różne rodzaje kodów kreskowych z wartości wejściowych
- Konwertuj wygenerowany kod kreskowy na strumień
- Używaj konkretnych metod do eksportowania różnych formatów obrazów jako strumień
- Zastosuj dalsze przetwarzanie danych strumieniowych
Jak eksportować kody kreskowe jako strumienie?
Po utworzeniu kodu kreskowego z pożądaną wartością, użyj metody ToStream, aby przekonwertować wygenerowany kod kreskowy na MemoryStream. Domyślny format to PNG. Ta funkcjonalność działa również z QRCodeWriter, nawet po zastosowaniu niestandardowego stylu. Dla pełnej dokumentacji na temat wszystkich dostępnych metod, odwiedź Dokumentacja API.
Przykład eksportowania kodu kreskowego jako strumień
: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()
Dlaczego używać strumieni zamiast plików?
Użycie strumieni eliminuje zależności od systemu plików i zapewnia przetwarzanie w pamięci dla lepszej wydajności. Podejście to jest idealne dla aplikacji webowych, API oraz scenariuszy, gdzie tworzenie tymczasowych plików jest ograniczone lub niepożądane. Przetwarzanie strumieniowe oferuje kilka zalet:
- Zwiększone bezpieczeństwo: brak plików tymczasowych na dysku, które mogłyby ujawnić poufne dane
- Lepsza wydajność: Operacje na pamięci bezpośredniej są szybsze niż operacje wejścia/wyjścia na dysku
- Kompatybilność z chmurą: Działa płynnie w środowiskach kontenerowych i bezserwerowych
- Efektywne wykorzystanie zasobów: zmniejsza zużycie miejsca na dysku i obciążenie systemu plików
Kiedy należy używać MemoryStream do BarCodes?
Użyj MemoryStream, gdy potrzebujesz przetworzyć kody kreskowe w pamięci, wysłać je bezpośrednio do odpowiedzi HTTP lub zintegrować je z innymi API opartymi o strumienie bez tworzenia tymczasowych plików. Typowe scenariusze obejmują:
- Odpowiedzi Web API: Zwracają BarCodes bezpośrednio w odpowiedziach HTTP bez zapisywania na dysku
- Przechowywanie w bazie danych: Przechowuj dane BarCode jako binarne bloby w bazach danych
- Załączniki do wiadomości e-mail: Generuj i dołączaj BarCodes do wiadomości e-mail w locie
- Przechowywanie w chmurze: Przesyłaj bezpośrednio do Azure Blob Storage, AWS S3 lub podobnych usług
- Przetwarzanie w czasie rzeczywistym: Generowanie kodów kreskowych do natychmiastowego wykorzystania bez konieczności ich przechowywania
Jakie formaty obrazów mogę eksportować do Streams?
IronBarcode obsługuje wiele formatów danych wyjściowych do eksportu strumieniowego. Kilka metod konwertuje obiekt kodu kreskowego do MemoryStream. Metody te upraszczają proces, umożliwiając wybór w oparciu o pożądany format obrazu. Dostępne metody obejmują:
| Metoda | Format | Opis |
|---|---|---|
| Właściwość BinaryStream | Bitmapa | Zwraca System.IO.Stream kodu kreskowego wyrenderowanego jako obraz Bitmap |
ToGifStream() |
GIF | W przypadku formatu obrazuGIF |
ToJpegStream() |
JPEG/JPG | W przypadku formatu obrazuJPEG/JPG |
ToPdfStream() |
Dla formatu dokumentuPDF | |
ToPngStream() |
PNG | Dla formatu obrazuPNG |
ToStream() |
PNG(domyślnie) | Domyślnie dla formatu obrazu PNG. Akceptuje pole wyliczeniowe AnyBitmap.ImageFormat jako argument w celu określenia pożądanego formatu |
ToTiffStream() |
TIFF | W przypadku formatu obrazuTIFF |
Eksportuj BarCode jako strumień w różnych formatach obrazu
Użyj metod ToJpegStream i ToStream, aby wyprowadzić strumienie w formacie obrazu JPEG:
: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()
Przykłady zaawansowanego eksportu strumieniowego
Ten obszerny przykład pokazuje, jak tworzyć BarCodes na podstawie różnych typów danych i eksportować je jako strumienie w różnych formatach:
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
Jak wybrać odpowiedni format?
Wybierz odpowiedni format w zależności od swoich wymagań:
- PNG: Najlepszy do użytku w sieci, obsługuje przezroczystość, bezstratną kompresję
- JPEG: Mniejsze rozmiary plików, idealne, gdy nie jest potrzebna przezroczystość
- PDF: Idealny do integracji dokumentów, raportów i formatów do druku
- TIFF: Wysoka jakość do celów archiwizacji, obsługa wielu stron
- GIF: Ograniczona paleta kolorów, odpowiednia dla prostych BarCODE-ów z animacją
Jakie są typowe scenariusze przetwarzania strumieniowego?
Przetwarzanie BarCodes oparte na strumieniach umożliwia wiele praktycznych zastosowań:
- Bezpośrednia odpowiedź HTTP: dostarczanie BarCode do klientów internetowych bez pośredniego przechowywania
- Binarne przechowywanie w bazie danych: Przechowuj dane BarCode jako pola BLOB
- Buforowanie w pamięci: buforowanie wygenerowanych BARCODE-ów w scenariuszach wymagających wysokiej wydajności
- Łańcuchowanie strumieni: Przetwarzanie barcode'ów za pomocą potoków transformacji
- Przetwarzanie wsadowe: Generuj tysiące kodów kreskowych bez operacji wejścia/wyjścia na dysku
Praca z danymi strumieniowymi
Podczas pracy ze strumieniami może zaistnieć potrzeba odczytu BarCodes ze strumieni. Oto przykład przetwarzania w obie strony:
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
Rozważania dotyczące wydajności
Podczas eksportowania kodów kreskowych jako strumieni należy wziąć pod uwagę następujące wskazówki dotyczące wydajności:
- Ponowne użycie strumieni: Użyj
MemoryStreamz początkową pojemnością dla lepszej wydajności - Operacje asynchroniczne: W przypadku pracy z dużymi ilościami danych należy stosować metody asynchroniczne
- Stream Pooling: Wdrożenie stream poolingu dla operacji o wysokiej częstotliwości
- Wybór formatu: Wybieraj formaty mądrze —PNGjest zazwyczaj szybszy niż PDF
Pierwsze kroki z IronBarcode
Aby rozpocząć korzystanie z generowania kodów kreskowych opartego na strumieniach w swoich projektach, zapoznaj się z naszym obszernym przewodnikiem dla początkujących. Dokumentacja dotycząca eksportu BARCODE-ów jako strumienia zawiera dodatkowe przykłady i najlepsze praktyki dotyczące przepływów pracy opartych na strumieniach.
IronBarcode ułatwia tworzenie i eksportowanie kodów kreskowych do obiektów MemoryStream. To podejście oparte na strumieniach zapewnia doskonałą wydajność, zwiększone bezpieczeństwo oraz płynną integrację z nowoczesnymi aplikacjami natywnymi dla chmury.
Często Zadawane Pytania
Jak przekonwertować kod kreskowy na MemoryStream bez zapisywania na dysk?
Dzięki IronBarcode można bezpośrednio przekonwertować kod kreskowy na MemoryStream, używając metody ToStream(). Po prostu utwórz kod kreskowy za pomocą BarcodeWriter.CreateBarcode() i wywołaj ToStream() na wyniku. Domyślnie generuje to strumień PNG bez operacji I/O na plikach.
Jakie formaty obrazów mogę eksportować podczas konwersji kodów kreskowych na strumienie?
IronBarcode wspiera eksportowanie kodów kreskowych do strumieni w wielu formatach. Domyślnym formatem jest PNG przy użyciu metody ToStream(). Możesz również eksportować do innych formatów, używając specyficznych metod zaprojektowanych dla różnych typów obrazów, co pozwala na elastyczność w zależności od wymagań aplikacji.
Dlaczego warto używać generowania kodów kreskowych opartego na strumieniu zamiast metod opartych na plikach?
Generowanie kodów kreskowych oparte na strumieniu w IronBarcode oferuje zwiększone bezpieczeństwo przez unikanie plików tymczasowych, lepszą wydajność dzięki operacjom bezpośrednim w pamięci, płynną kompatybilność z chmurą dla środowisk konteneryzowanych oraz lepszą efektywność zasobów przez zmniejszoną przestrzeń dyskową i obciążenie systemu plików.
Czy mogę zastosować niestandardowe stylizowanie przed eksportem kodów QR jako strumieni?
Tak, IronBarcode pozwala na zastosowanie niestandardowego stylizowania do kodów QR przed ich eksportem jako strumienie. QRCodeWriter obsługuje wszystkie opcje stylizacji, a metoda ToStream() działa płynnie po zastosowaniu żądanych dostosowań, utrzymując wygląd stylizacji w wyniku strumienia.
Jakie są typowe zastosowania eksportowania kodów kreskowych jako MemoryStream?
Funkcja eksportu strumienia IronBarcode idealnie nadaje się do odpowiedzi API sieciowych, gdzie trzeba zwrócić kody kreskowe bezpośrednio w odpowiedziach HTTP, przechowywanie w bazie danych jako binarne bloby, załączniki e-mailowe oraz integrację z usługami chmurowymi lub środowiskami bezserwerowymi, gdzie dostęp do systemu plików jest ograniczony.
Jak utworzyć strumień kodu kreskowego w jednym wierszu kodu?
IronBarcode umożliwia utworzenie strumienia kodu kreskowego w jednym wierszu: BarcodeWriter.CreateBarcode("Twoja wartość", BarcodeEncoding.Code128).ToStream(). Tworzy to kod kreskowy z podaną wartością i kodowaniem, a następnie natychmiast przekształca go w MemoryStream bez pośrednich kroków.

