Jak odczytywać kody kreskowe ze strumieni w C
IronBarcode odczytuje kody kreskowe bezpośrednio z obiektów MemoryStream w aplikacjach .NET, eliminując potrzebę zapisywania strumieni na dysk. Dzięki temu możliwe jest efektywne przetwarzanie kodów kreskowych zarówno z obrazów, jak i strumieni dokumentów PDF przechowywanych w pamięci.
MemoryStream to klasa .NET Framework, która odczytuje i zapisuje strumienie przechowywane w pamięci. Operuje danymi bez plików fizycznych, przechowując je w pamięci. Podejście to sprawdza się w aplikacjach webowych, API lub sytuacjach, gdy otrzymujesz dane kodów kreskowych jako tablice bajtów lub musisz przetwarzać obrazy bez tworzenia plików tymczasowych.
Oprócz czytania kodów kreskowych z plików obrazów lub plików PDF, IronBarcode również odczytuje kody kreskowe ze strumieni. Biblioteka przyjmuje dokumenty PDF lub strumienie obrazów jako dane wejściowe i zwraca wyniki odczytu kodów kreskowych. Ta funkcjonalność nadaje się do przetwarzania danych z baz danych, przesyłania przez internet lub treści przechowywanych w pamięci podręcznej.
Szybki start: Odczyt kodu kreskowego bezpośrednio z strumienia obrazu
Użyj dwóch linii kodu z IronBarcode, aby odczytać kody kreskowe z dowolnego strumienia obrazu - bez konieczności zapisywania na dysku. Ten przykład demonstruje odczyt kodu kreskowego opartego na strumieniach w .NET.
-
Install IronBarcode with NuGet Package Manager
PM > Install-Package BarCode -
Skopiuj i uruchom ten fragment kodu.
var result = IronBarCode.BarcodeReader.Read(myImageStream); Console.WriteLine(result[0].Text); -
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)
- Odczyt kodów kreskowych ze strumienia obrazu
- Odczyt kodów kreskowych ze strumienia dokumentu PDF
Jak odczytywać kody kreskowe ze strumieni obrazów?
Dlaczego używać strumieni pamięci zamiast plików?
Strumienie pamięci oferują kilka zalet w porównaniu z operacjami opartymi na plikach. Eliminują przeciążenie operacji dyskowych I/O, przyspieszając aplikacje. Zwiększają bezpieczeństwo, ponieważ wrażliwe dane kodów kreskowych nigdy nie trafiają na dysk. Również są odpowiednie dla środowisk chmurowych, gdzie dostęp do dysku jest ograniczony lub kosztowny. W połączeniu z asynchronicznymi i wielowątkowymi możliwościami IronBarcode, można przetwarzać wiele strumieni jednocześnie dla maksymalnej wydajności.
Ta sekcja pokazuje, jak używać IronBarcode do odczytywania strumieni obrazów i wielu strumieni obrazów przechowywanych w List<MemoryStream>. Poniższy kod zawiera komentarze wyjaśniające proces:
Jakie formaty obrazów są obsługiwane?
IronBarcode obsługuje wiele formatów obrazów podczas odczytu ze strumieni: JPEG, PNG, GIF, TIFF, BMP i SVG. Ta elastyczność pozwala na przetwarzanie obrazów kodów kreskowych niezależnie od formatu źródłowego. Dla optymalnych wyników, użyj ustawień czytnika kodów kreskowych, aby dostosować proces odczytu.
using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;
class BarcodeFromImageStream
{
static void Main(string[] args)
{
// Create a list of MemoryStreams to store image streams
List<MemoryStream> imageStreams = new List<MemoryStream>
{
// Example of adding an existing MemoryStream object to the list
new MemoryStream(File.ReadAllBytes("example1.png")),
new MemoryStream(File.ReadAllBytes("example2.png"))
};
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-1.cs
using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;
class BarcodeFromImageStream
{
static void Main(string[] args)
{
// Create a list of MemoryStreams to store image streams
List<MemoryStream> imageStreams = new List<MemoryStream>
{
// Example of adding an existing MemoryStream object to the list
new MemoryStream(File.ReadAllBytes("example1.png")),
new MemoryStream(File.ReadAllBytes("example2.png"))
};
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.IO;
List<MemoryStream> list = new List<MemoryStream>();
list.Add(AnyBitmap.FromFile("image1.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image2.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image3.png").ToStream());
var myBarcode = BarcodeReader.Read(list);
foreach (var barcode in myBarcode)
{
Console.WriteLine(barcode.ToString());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic
Imports System.IO
Friend Class BarcodeFromImageStream
Shared Sub Main(ByVal args() As String)
' Create a list of MemoryStreams to store image streams
Dim imageStreams As New List(Of MemoryStream) From {
New MemoryStream(File.ReadAllBytes("example1.png")),
New MemoryStream(File.ReadAllBytes("example2.png"))
}
Dim IronBarCode As using
Using IronSoftware.Drawing
Dim System As using
Using System.Collections.Generic
Using System.IO
Dim list As New List(Of MemoryStream)()
list.Add(AnyBitmap.FromFile("image1.jpg").ToStream())
list.Add(AnyBitmap.FromFile("image2.jpg").ToStream())
list.Add(AnyBitmap.FromFile("image3.png").ToStream())
Dim myBarcode = BarcodeReader.Read(list)
For Each barcode In myBarcode
Console.WriteLine(barcode.ToString())
Next barcode
End Using
End Using
End Using
Jak obsługiwać wiele strumieni obrazów?
Powyższy kod pokazuje, że IronBarcode akceptuje pojedynczy obiekt MemoryStream lub listę obiektów MemoryStream w metodzie BarcodeReader.Read(). Przykład konwertuje pliki obrazów do obiektów MemoryStream i odczytuje kody kreskowe bezpośrednio ze strumieni.
Podczas przetwarzania wielu strumieni, IronBarcode efektywnie korzysta z opcji prędkości odczytu. Dostosuj prędkość odczytu w zależności od potrzeb — czy wymaga to maksymalnej dokładności, czy najszybszego czasu przetwarzania. Dla odczytywania wielu kodów kreskowych z jednego strumienia, IronBarcode automatycznie wykrywa i zwraca wszystkie znalezione kody.
Dla zwiększenia dokładności z niedoskonałymi lub niskiej jakości obrazami w strumieniach stosuj filtry korekcji obrazów przed przetwarzaniem. To znacznie poprawia wskaźniki rozpoznawania kodów kreskowych.
Jak odczytywać kody kreskowe ze strumieni dokumentów PDF?
Dlaczego używać ReadPdf() zamiast Read()?
Metoda ReadPdf() jest zoptymalizowana specjalnie dla dokumentów PDF, oferując przewagę nad ogólną metodą Read(). Efektywnie obsługuje funkcje specyficzne dla PDF, takie jak dokumenty wielostronicowe, grafika wektorowa i osadzone obrazy. Metoda automatycznie przetwarza wszystkie strony PDF i obsługuje różne formaty PDF oraz rodzaje kompresji. Dla pełnego zestawu funkcji, zobacz tutorial dotyczący czytania kodów kreskowych.
Ta sekcja demonstruje użycie IronBarcode do odczytywania plików dokumentów PDF jako obiektów MemoryStream lub list strumieni dokumentów PDF. Oto kod:
A co z wieloma dokumentami PDF?
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs
using IronBarCode;
using IronPdf;
using System;
using System.IO;
MemoryStream document = PdfDocument.FromFile(@"file_path.pdf").Stream;
var myBarcode = BarcodeReader.ReadPdf(document);
foreach (var value in myBarcode)
{
Console.WriteLine(value.ToString());
}
Imports IronBarCode
Imports IronPdf
Imports System
Imports System.IO
Private document As MemoryStream = PdfDocument.FromFile("file_path.pdf").Stream
Private myBarcode = BarcodeReader.ReadPdf(document)
For Each value In myBarcode
Console.WriteLine(value.ToString())
Next value
Jak efektywnie przetwarzać wiele strumieni PDF?
Odczyt kodów kreskowych z dokumentów PDF jako obiektów MemoryStream jest podobny do odczytu z obrazów. Kluczowa różnica to metoda: BarcodeReader.ReadPdf() specjalnie obsługuje dokumenty PDF. Przykład używa IronPDF do konwersji dokumentów PDF do obiektów MemoryStream.
Dla wielu dokumentów PDF, scal wszystkie PDF do jednego strumienia dokumentu przed wprowadzeniem go do BarcodeReader.ReadPdf(). To podejście przetwarza bardziej efektywnie niż obsługa każdego PDF osobno i zmniejsza przeciążenie pamięci. Skonfiguruj ustawienia czytnika kodów kreskowych specyficzne dla PDF, aby zoptymalizować odczyt dla twoich dokumentów.
Dla zaawansowanych scenariuszy, przetwarzaj konkretne strony lub regiony dokumentu PDF. IronBarcode pozwala na określenie zakresów stron i przycinanie regionów w obrębie stron, celując w obszary, gdzie pojawiają się kody kreskowe. To poprawia prędkość przetwarzania dużych dokumentów.
Podczas używania strumieni w produkcji, odpowiednio zwalniaj obiekty MemoryStream, aby zapobiec wyciekom pamięci. Instrukcja using zapewnia automatyczne zwolnienie zasobów:
using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
var results = BarcodeReader.ReadPdf(pdfStream);
// Process results
}
using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
var results = BarcodeReader.ReadPdf(pdfStream);
// Process results
}
Imports System.IO
Using pdfStream As New MemoryStream(pdfBytes)
Dim results = BarcodeReader.ReadPdf(pdfStream)
' Process results
End Using
Eksperymentuj i dostosuj bibliotekę do swoich specyficznych potrzeb. Elastyczne API IronBarcode pozwala na szeroką personalizację procesu odczytu, od regulacji czułości detekcji po określanie oczekiwanych formatów kodów kreskowych.
Często Zadawane Pytania
Jak odczytać kody kreskowe ze strumieni bez wcześniejszego zapisywania na dysku?
IronBarcode pozwala na odczytywanie kodów kreskowych bezpośrednio z obiektów MemoryStream bez zapisywania na dysku. Po prostu przekaż swój strumień do metody BarcodeReader.Read(). To podejście eliminuje zbędne operacje dyskowe i jest idealne do przetwarzania obrazów z przesłań internetowych, baz danych lub API.
Jakie formaty obrazów obsługuje czytnik kodów kreskowych podczas przetwarzania strumieni?
IronBarcode obsługuje wiele formatów obrazów podczas odczytu ze strumieni, w tym JPEG, PNG, GIF, TIFF, BMP i SVG. Ta elastyczność pozwala na przetwarzanie obrazów kodów kreskowych z różnych źródeł bez potrzeby konwersji formatu.
Czy mogę przetwarzać wiele strumieni obrazów kodów kreskowych jednocześnie?
Tak, IronBarcode obsługuje możliwości asynchroniczne i wielowątkowość, co pozwala na przetwarzanie wielu strumieni kodów kreskowych jednocześnie, co maksymalizuje wydajność. Jest to szczególnie przydatne podczas obsługi operacji odczytu kodów kreskowych z pamięci masowej.
Jakie są zalety używania strumieni pamięciowych w porównaniu do odczytu kodów kreskowych z plików?
Przetwarzanie strumieni pamięciowych za pomocą IronBarcode oferuje szybszą wydajność dzięki eliminacji operacji dyskowych, lepsze bezpieczeństwo, ponieważ dane wrażliwe nigdy nie trafiają na dysk, oraz lepszą kompatybilność z środowiskami chmurowymi, gdzie dostęp do dysku może być ograniczony lub kosztowny.
Jak mogę odczytać kody kreskowe z strumieni dokumentów PDF?
IronBarcode może odczytywać kody kreskowe zarówno z obrazów, jak i strumieni dokumentów PDF. Po prostu przekaż swój PDF MemoryStream do metody BarcodeReader.Read(), a ona wyodrębni i zdekoduje wszystkie kody kreskowe znalezione na stronach PDF.
Czy można dostosować proces odczytu kodów kreskowych podczas pracy ze strumieniami?
Tak, IronBarcode oferuje konfigurowalne ustawienia czytnika kodów kreskowych, które pozwalają optymalizować proces odczytu dla określonego przypadku użycia, niezależnie od tego, czy przetwarzasz pojedyncze strumienie, czy wiele strumieni przechowywanych w kolekcjach.

