IRONSOFTWAREHOME

Jak odczytać wiele kodów kreskowych jednocześnie w C#

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 4 czerwca 2026

IronBarcode umozliwia jednoczesne odczytywanie wielu kodow kreskowych z obrazow i PDF-ow poprzez ustawienie ExpectMultipleBarcodes = true, co usprawnia przetwarzanie danych w aplikacjach do logistyki, handlu detalicznego i zarzadzania inwentarzem. Niezależnie od tego, czy budujesz systemy magazynowe, aplikacje punktów sprzedaży detalicznej, czy rozwiązania do przetwarzania dokumentów, zaawansowane możliwości odczytu IronBarcode zapewniają niezawodność i wydajność, jakiej potrzebujesz.

Szybki start: Łatwe odczytywanie wszystkich kodów kreskowych z obrazu

Ten przykład pokazuje, jak szybko można użyć IronBarcode do zeskanowania obrazu w celu wykrycia każdego kodu kreskowego, który zawiera. Wystarczy ustawic ExpectMultipleBarcodes = true obok typow kodow kreskowych, ktore chcesz—bez zbednej tresci, bez problemow.

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2Skopiuj i uruchom ten fragment kodu.

    var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { ExpectMultipleBarcodes = true, ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.AllOneDimensional });
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną
    arrow pointer

Jak odczytać wiele kodów kreskowych z obrazu?

Domyślnie IronBarcode ciągle skanuje dokument, aby odczytać wiele kodów kreskowych. Zdarzały się jednak sytuacje, gdy zwracana była tylko jedna wartość kodu kreskowego, nawet jeśli obecne były więcej kodów. Aby rozwiązać ten problem, dostosuj ustawienia, aby umożliwić odczyt wielu kodów kreskowych, jak pokazano poniżej. Wlasciwosc ExpectMultipleBarcodes istnieje w obu klasach BarcodeReaderOptions i PdfBarcodeReaderOptions, co pozwala na jej wykorzystanie do odczytywania kodow kreskowych zarówno z obrazow, jak i dokumentow PDF.

Trzy przykładowe kody kreskowe oznaczone A, B i C pokazujące różne wzory kreskowe dla demonstracji odczytu wielu kodów kreskowych
using IronBarCode;
using System;

// Set the option to read multiple barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
};

// Read barcode
var results = BarcodeReader.Read("testbc1.png", options);

foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}

Ustawienie ExpectMultipleBarcodes na true umozliwia IronBarcode skanowanie calego dokumentu w poszukiwaniu wielu kodow kreskowych i przechowywanie ich w zmiennej BarcodeResults. Korzystajac z petli foreach, mozna latwo uzyskac dostep i wydrukowac wszystkie wartosci kodow kreskowych na konsole.

Zaawansowane scenariusze odczytu wielu kodów kreskowych

Pracując z wieloma kodami kreskowymi, możesz napotkać sytuacje wymagające dodatkowej konfiguracji. Oto szczegółowy przykład demonstrujący, jak odczytać wiele kodów kreskowych o różnych formatach z złożonego dokumentu:

using IronBarCode;
using System;
using System.Linq;

// Configure advanced options for mixed barcode types
BarcodeReaderOptions advancedOptions = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = true,
    // Read both 1D and 2D barcodes
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode | BarcodeEncoding.DataMatrix,
    // Apply image correction filters for better accuracy
    ImageFilters = new ImageFilterCollection() {
        new SharpenFilter(),
        new ContrastFilter()
    },
    // Set speed vs accuracy balance
    Speed = ReadingSpeed.Balanced
};

// Read barcodes from the image
var imageResults = BarcodeReader.Read("mixed-barcodes.jpg", advancedOptions);

// Process results with error handling
foreach (var result in imageResults)
{
    Console.WriteLine($"Barcode Type: {result.BarcodeType}");
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Page: {result.PageNumber}");
    Console.WriteLine("---");
}
C#

Ten zaawansowany przykład przedstawia kilka ważnych funkcji:

Jak mogę odczytać pojedynczy kod kreskowy dla lepszej wydajności?

IronBarcode odczytuje zarówno pojedyncze, jak i wielokrotne kody kreskowe na obrazach lub PDF-ach. Domyślnie silnik skanuje cały dokument, nawet jeśli istnieje tylko jeden kod kreskowy. Aby zwiekszyc wydajnosc przy odczytywaniu pojedynczego kodu kreskowego, ustaw ExpectMultipleBarcodes na false. To zatrzymuje silnik przed skanowaniem całego dokumentu po wykryciu pierwszego kodu kreskowego, co skutkuje szybszym pozyskaniem kodu. Poniższy kod demonstruje to podejście.

Trzy identyczne przykładowe BARCODE-y oznaczone literami A, B i C do demonstracji odczytu BARCODE-ów
using IronBarCode;
using System;

// Set the option to read single barcode
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
};

// Read barcode
var results = BarcodeReader.Read("testbc1.png", options);

foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}

W tym przykladzie uzyto tego samego obrazu z wieloma kodami kreskowymi jak wczesniej, ale ustawiono ExpectMultipleBarcodes na false. W rezultacie zwracana jest tylko wartość pierwszego BARCODE'a, a proces skanowania zatrzymuje się po pobraniu pierwszego BARCODE'a.

Optymalizacja odczytu pojedynczego BarCoda za pomocą obszarów przycięcia

Aby jeszcze bardziej zwiekszyc wydajnosc przy odczytywaniu pojedynczych kodow kreskowych, polacz ustawienie ExpectMultipleBarcodes = false ze specyfikacjami obszaru przycinania. Ta technika jest szczególnie przydatna, gdy znasz przybliżoną lokalizację BarCoda:

using IronBarCode;
using IronSoftware.Drawing;

// Define a crop region where the barcode is likely located
var cropRegion = new Rectangle(100, 100, 300, 200);

// Configure options for optimal single barcode reading
BarcodeReaderOptions optimizedOptions = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    CropArea = cropRegion,
    Speed = ReadingSpeed.Faster
};

// Read with optimized settings
var result = BarcodeReader.Read("product-label.png", optimizedOptions).FirstOrDefault();

if (result != null)
{
    Console.WriteLine($"Barcode found: {result.Value}");
}
C#

O ile szybsze jest odczytywanie pojedynczego BarCoda?

Ustawienie ExpectMultipleBarcodes = false znaczaco poprawia efektywnosc odczytywania pojedynczych kodow kreskowych. Wzrost wydajności jest szczególnie zauważalny podczas pracy z obrazami o wysokiej rozdzielczości lub podczas wdrażania asynchronicznego odczytu BarCode w aplikacjach o dużej przepustowości.

Korzystajac z dostarczonego fragmentu kodu, oto szacunkowa roznica wydajnosci miedzy ustawieniem ExpectMultipleBarcodes = true a false na tej samej maszynie:

ExpectMultipleBarcodes = trueExpectMultipleBarcodes = false
00,91 sekundy00,10 sekundy

Oznacza to około 9-krotną poprawę wydajności podczas odczytu pojedynczych BARCODE-ów. Rzeczywisty wzrost wydajności zależy od:

  • Rozdzielczość i złożoność obrazów
  • Liczba BarCodes obecnych na obrazie
  • Wybrane formaty BarCode
  • Zastosowane filtry obrazu
  • Specyfikacje sprzętowe

Najlepsze praktyki dotyczące odczytu wielu BarCodes

Wdrażając funkcję odczytu wielu BarCodes w aplikacjach produkcyjnych, należy wziąć pod uwagę następujące najlepsze praktyki:

  1. Okresl oczekiwane typy kodow kreskowych: Zamiast uzywac BarcodeEncoding.All, podaj tylko oczekiwane formaty. Znacznie poprawia to wydajność.

  2. Używaj odpowiednich formatów obrazów: Aby uzyskać najlepsze wyniki, używaj obrazów o wysokim kontraście. Dowiedz się więcej o tworzeniu optymalnych obrazów BarCode.

  3. Obsługa uszkodzonych BARCODE-ów: W rzeczywistości BARCODE-y mogą być uszkodzone lub źle wydrukowane. Należy zastosować techniki korekcji obrazu w celu poprawy wskaźników skuteczności czytania.

  4. Przetwarzanie strumieniowe: W przypadku dużych partii danych warto rozważyć odczyt ze strumieni, aby zoptymalizować wykorzystanie pamięci.

  5. Obsługa błędów: Zawsze należy wdrożyć odpowiednią obsługę błędów w sytuacjach, gdy nie można odczytać kodów kreskowych:

try
{
    var results = BarcodeReader.Read("barcodes.png", new BarcodeReaderOptions 
    { 
        ExpectMultipleBarcodes = true 
    });
    
    if (!results.Any())
    {
        Console.WriteLine("No barcodes found in the image");
    }
    else
    {
        Console.WriteLine($"Found {results.Count()} barcodes");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading barcodes: {ex.Message}");
    // Log error for debugging
}

Postępując zgodnie z tymi praktykami i wykorzystując wszechstronne funkcje IronBarcode, można tworzyć solidne aplikacje, które skutecznie radzą sobie z wieloma scenariuszami odczytu kodów kreskowych w różnych branżach i zastosowaniach.

Często Zadawane Pytania

Jak mogę odczytać wiele kodów kreskowych z jednego obrazu w C#?

Z IronBarcode możesz odczytać wiele kodów kreskowych z jednego obrazu, ustawiając ExpectMultipleBarcodes = true w BarcodeReaderOptions. To pozwala IronBarcode zeskanować cały dokument i zwrócić wszystkie znalezione kody kreskowe w kolekcji BarcodeResults, przez którą można iterować.

Jaki jest najszybszy sposób skanowania wszystkich kodów kreskowych na obrazie?

Najszybszym podejściem jest użycie metody Read IronBarcode z ExpectMultipleBarcodes = true: var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { ExpectMultipleBarcodes = true }). Ten minimalny kod wyodrębnia wszystkie wartości kodów kreskowych bez skomplikowanej konfiguracji.

Czy mogę odczytać wiele kodów kreskowych z dokumentów PDF oraz z obrazów?

Tak, IronBarcode wspiera odczyt wielu kodów kreskowych zarówno z obrazów, jak i dokumentów PDF. Właściwość ExpectMultipleBarcodes jest dostępna zarówno w klasach BarcodeReaderOptions, jak i PdfBarcodeReaderOptions, pozwalając na konfigurację odczytu wielu kodów kreskowych dla dowolnego typu dokumentu.

Co się stanie, jeśli nie ustawię ExpectMultipleBarcodes na true?

Domyślnie IronBarcode ciągle skanuje dokumenty pod kątem wielu kodów kreskowych. Jednak w niektórych przypadkach tylko jedna wartość kodu kreskowego może być zwrócona, nawet gdy istnieją wiele kodów kreskowych. Ustawienie ExpectMultipleBarcodes = true wyraźnie zapewnia, że IronBarcode skanuje i zwraca wszystkie kody kreskowe w dokumencie.

Jak uzyskać dostęp do poszczególnych wartości kodów kreskowych po odczytaniu wielu kodów kreskowych?

Po odczytaniu wielu kodów kreskowych za pomocą IronBarcode, wyniki są przechowywane w zmiennej BarcodeResults. Możesz łatwo uzyskać dostęp do poszczególnych wartości kodów kreskowych, używając pętli foreach do przeiterowania przez kolekcję i przetworzenia każdej wartości, tekstu i właściwości formatu kodu kreskowego.

Czy odczyt wielu kodów kreskowych jest odpowiedni dla aplikacji sprzedaży detalicznej i logistycznych?

Tak, możliwość odczytu wielu kodów kreskowych przez IronBarcode jest idealna dla systemów punktów sprzedaży detalicznej, zarządzania magazynem, śledzenia logistyki i aplikacji zarządzania zapasami. Uproszcza przetwarzanie danych przez efektywne skanowanie wszystkich kodów kreskowych na etykietach wysyłkowych, katalogach produktów lub arkuszach zapasów jednocześnie.

Czy mogę określić, jakich typów kodów kreskowych szukać podczas odczytywania wielu kodów kreskowych?

Tak, IronBarcode pozwala określić oczekiwane typy kodów kreskowych za pomocą właściwości ExpectBarcodeTypes. Możesz ustawić ją na skanowanie określonych formatów, takich jak AllOneDimensional, QRCode, lub dowolną kombinację obsługiwanych typów kodów kreskowych, aby zoptymalizować wydajność skanowania.

Czy ustawienie ExpectMultipleBarcodes wpływa na wydajność skanowania?

Ustawienie ExpectMultipleBarcodes = false może zwiększyć wydajność, gdy wiesz, że w dokumencie istnieje tylko jeden kod kreskowy. IronBarcode zakończy skanowanie po znalezieniu pierwszego kodu kreskowego, co sprawia, że jest szybsze dla scenariuszy z jednym kodem kreskowym, zachowując jednocześnie elastyczność dla odczytu kilku kodów kreskowych, gdy jest to potrzebne.

Is stream processing supported in IronBarcode for large barcode batches?

Yes, IronBarcode supports reading barcodes from streams, which is particularly useful for optimizing memory usage in high-throughput applications or large batch processing.

Gotowy, aby rozpocząć?

Nuget Downloads 2,422,100Wersja:2026.9właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz Przeglądaj i wyszukaj "IronBarCode"
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

  1. Pobierz i rozpakuj IronBarCode do lokalizacji, takiej jak ~/Libs w katalogu Twojego rozwiązania
  2. W Eksploratorze Rozwiązań Visual Studio kliknij prawym przyciskiem Referencje. Wybierz Przeglądaj, "IronBarCode.dll"

Licencje od $999

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta