IRONSOFTWAREHOME

Jak dostosować prędkość czytania w języku C# za pomocą IronBarcode

Curtis Chau
Curtis Chau
Updated: 22 kwietnia 2026

IronBarcode zapewnia cztery opcje szybkości odczytu (Faster, Balanced, Detailed, ExtremeDetail), które pozwalają kontrolować kompromis między szybkością przetwarzania a dokładnością podczas odczytywania kodów kreskowych w C#, przy czym Balanced jest zalecanym punktem wyjścia dla większości aplikacji.

Wprowadzenie

Dokładność ma kluczowe znaczenie podczas odczytu dużych zbiorów BarCodes, ale równie ważne są kwestie alokacji zasobów i wydajności przetwarzania. Jakość obrazów wejściowych decyduje o tym, w jaki sposób czytnik kodów kreskowych powinien je przetwarzać — czy pominąć przetwarzanie wstępne w przypadku wyraźnych obrazów, czy też zastosować opcje wymagające większych zasobów w celu poprawy dokładności w przypadku kodów kreskowych o obniżonej jakości.

IronBarcode zapewnia elastyczność w wyborze szybkości przetwarzania i poziomu dokładności, umożliwiając kontrolę nad każdym aspektem procesu odczytu kodów kreskowych. Możesz podejmować decyzje na podstawie dostarczonych obrazów i dostępnych zasobów. W przypadku bardziej zaawansowanych scenariuszy odczytu BarCode zapoznaj się z naszym obszernym samouczkiem dotyczącym odczytu BarCode, który obejmuje różne formaty i techniki.

W tym artykułe przedstawiono wytyczne dotyczące wyboru optymalnej prędkości czytania w różnych sytuacjach. Wykorzystamy przykłady kodów QR, aby zademonstrować, jak zmiana prędkości odczytu wpływa na wyniki. Jeśli pracujesz konkretnie z kodami QR, zapoznaj się z naszym samouczkiem dotyczącym generatora kodów QR w języku C#, aby utworzyć próbki testowe.

Szybki start: Odczyt BarCoda z wyważoną prędkością

Użyj BarcodeReaderOptions IronBarcode, aby natychmiast ustawić poziom Speed dla swojego skanowania. Ten przykład pokazuje, jak szybko odczytywać kody kreskowe, używając ustawienia Balanced dla szybkich i niezawodnych wyników.

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2Skopiuj i uruchom ten fragment kodu.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced });
    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

Jakie są dostępne opcje prędkości czytania?

IronBarcode oferuje cztery opcje ReadingSpeed: Faster, Balanced, Detailed i ExtremeDetail. Przeanalizujemy każdą opcję, korzystając z zestawu przykładów zawierającego głównie zniekształcone obrazy BARCODE-ów oraz kilka wyraźnych obrazów, aby zademonstrować możliwości biblioteki. Pełną listę obsługiwanych formatów można znaleźć na naszej stronie poświęconej obsługiwanym formatom BarCode.

Wykorzystamy bibliotekę testów porównawczych .NET do pomiaru czasu przetwarzania i zużycia pamięci, pokazując porównanie poszczególnych opcji oraz identyfikując idealne scenariusze dla każdej prędkości odczytu. Przedstawimy kod testowy oraz prostą metodę zliczania poprawnie odczytanych uszkodzonych BARCODE-ów. Aby uzyskać więcej informacji na temat konfiguracji opcji czytnika, zapoznaj się z naszym przykładem ustawień czytnika BarCode.

Kiedy należy używać opcji szybszego tłumaczenia?

Opcja Faster zapewnia najszybsze odczytywanie kodów kreskowych przy minimalnych zasobach, ale zmniejsza dokładność. Proces ten pomija wstępne przetwarzanie obrazów i działa najlepiej, gdy obrazy wejściowe są już ostre i wyraźne.

Ten przykład ustawia właściwość Speed na ReadingSpeed.Faster, importuje katalog z kodami kreskowymi i wyświetla znalezione kody kreskowe wraz z ich wartościami, typami i liczbą na obraz. Aby lepiej zrozumieć odczytywanie BARCODE-ów z różnych formatów obrazów, zapoznaj się z naszym przewodnikiem dotyczącym odczytywania BARCODE-ów z obrazów.

using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Faster could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");

Opcja Faster wykryła 146 wyników kodów kreskowych z 430 w czasie 25 sekund, osiągając 33,95% dokładności. Chociaż metoda ta jest szybka, nadaje się tylko do obrazów w idealnym stanie. W przypadku wielu BarCodes na jednym obrazie warto zapoznać się z naszym przewodnikiem dotyczącym odczytu wielu BarCodes, aby uzyskać optymalną konfigurację.

Dlaczego opcja "Zrównoważona" jest zalecaną opcją szybkości?

Opcja Balanced równoważy dokładność i wydajność odczytu. IronBarcode stosuje lekkie przetwarzanie obrazu w celu wyostrzenia obszaru kodu kreskowego, ułatwiając jego wykrywanie i odczyt. To ustawienie jest zalecane dla większości współczesnych obrazów, ponieważ przetwarzanie w trybie jasnym zazwyczaj daje dokładne wyniki.

Użyjmy tych samych obrazów, aby zademonstrować, jak Balanced wpływa na wyniki wyjściowe. W przypadku operacji asynchronicznych zapoznaj się z naszym przewodnikiem dotyczącym asynchroniczności i wielowątkowości w IronBarcode.

using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Balanced could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");

Opcja Balanced wykryła 237 wyników kodów kreskowych z 430 w 43 sekundy. Zapewnia 55,11% dokładności—znaczną poprawę w porównaniu do Faster—z jedynie niewielkim wzrostem czasu. Ta opcja utrzymuje efektywną równowagę między pamięcią a szybkością, co czyni ją idealnym rozwiązaniem w większości sytuacji i zalecanym punktem wyjściowym. To wyważone podejście sprawdza się szczególnie dobrze w połączeniu z odpowiednimi technikami przetwarzania wstępnego obrazów.

Kiedy potrzebuję opcji szczegółowej szybkości?

Gdy obrazy są bardzo rozmyte lub zniekształcone i Balanced nie może zapewnić wyraźnych wyników, użyj opcji Detailed. Stosuje średni poziom przetwarzania wstępnego w celu wyostrzenia obszaru BarCode i zredukowania szumu cyfrowego, co poprawia wykrywalność. W przypadku obrazów o bardzo niskiej jakości zapoznaj się z naszym przewodnikiem po korekcji obrazów, który obejmuje różne techniki przetwarzania wstępnego.

Zastosujmy ustawienie Detailed i obserwujmy jego wpływ na wyniki.

using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Detailed could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");

Opcja Detailed wykryła 237 wyników kodów kreskowych z 430 w czasie 5 minut i 30 sekund. Jego 55,11% wskaźnik skuteczności w przypadku poważnie uszkodzonych BARCODE-ów świadczy o jego dokładności. Jednak ze względu na znacznie wydłużony czas przetwarzania opcja ta powinna być zarezerwowana wyłącznie dla obrazów BarCode o obniżonej jakości. W przypadku pracy z niedoskonałymi kodami kreskowymi zapoznaj się z naszym przykładem obsługi niedoskonałych kodów kreskowych, aby poznać dodatkowe strategie.

W jakich sytuacjach potrzebna jest szybkość ExtremeDetail?

Ustawienie ExtremeDetail stosuje intensywne przetwarzanie na obrazach kodów kreskowych, znacznie zmniejszając wydajność odczytu. Ta opcja, wymagająca dużej mocy obliczeniowej procesora, sprawdza się najlepiej w przypadku skanowania wielu niewyraźnych lub zamazanych BARCODE-ów w jednym pliku wejściowym. Należy z niej korzystać w ostateczności, gdy inne opcje nie dają pożądanych rezultatów. W przypadku przetwarzania dużych ilości danych warto rozważyć odczytywanie BARCODE-ów z plików PDF, które często zawierają wiele BARCODE-ów na jednej stronie.

Zastosujmy ustawienie ExtremeDetail, aby obserwować jego wpływ.

using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"ExtremeDetail could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");

Opcja ExtremeDetail zidentyfikowała 313 z 430 obrazów kodów kreskowych w około 10 minut. Chociaż osiąga imponującą dokładność na poziomie 72,79% w przypadku poważnie uszkodzonych BARCODE-ów, to ze względu na duże zużycie zasobów nadaje się do stosowania wyłącznie w ostateczności. Przed skorzystaniem z tej opcji warto rozważyć wstępne przetworzenie obrazów.

Jak wypadają różne prędkości w porównaniu?

TrybZnalezione BarCodesŚredni czasCzas na plikCisnienie GCZysk w zakresie dokładności
Szybciej147/430 (33,95%)25 s0,058 sWysoka (Gen2: 177K)Baseline
Zrównoważony237/430 (55,11%)43 s0,1 sWysoka (Gen2: 151 tys.)+62,32% w porównaniu z Faster
Szczegółowe237/430 (55,11%)5,50 min0,767 sBardzo wysoka (Gen2: 297 tys.)+0% vs Zrównoważone
ExtremeDetail313/430 (72,79%)10,14 min1,414 sExtreme (Gen2: 4,74 mln)+32,08% w porównaniu ze szczegółowym

Jak wybrać odpowiednią prędkość dla mojej aplikacji?

Na podstawie powyższych porównań, rozpocznij od ustawienia Faster i przechodź przez Balanced, Detailed i ExtremeDetail, aby zidentyfikować znaczące różnice w wyniku. Dla większości scenariuszy Balanced radzi sobie z wszystkim odpowiednio. Używaj Detailed i ExtremeDetail tylko w przypadku mocno zniekształconych obrazów. Dla cienkich lub niskiej jakości kodów kreskowych, połącz ustawienie szybkości z MinScanLines = 1, aby zwiększyć czułość wykrywania.

Chociaż Detailed i ExtremeDetail stosują średnie i ciężkie przetwarzanie, czasami bardziej wydajne jest rozdzielenie procesu—zastosowanie filtrów obrazów ręcznie przed odczytem kodu kreskowego niż używanie jednego procesu. Więcej informacji na temat wstępnego przetwarzania obrazów można znaleźć w tym przewodniku.

Które ustawienie prędkości pasuje do mojego zastosowania?

Drzewo decyzyjne dotyczące wyboru prędkości próbkowania w oparciu o jakość obrazu, od opcji "Faster" do "Detailed+ExtremeDetail"

Często Zadawane Pytania

Jakie są cztery dostępne opcje prędkości odczytu kodów kreskowych?

IronBarcode oferuje cztery opcje ReadingSpeed: Faster, Balanced, Detailed i ExtremeDetail. Każda z nich zapewnia inną równowagę między prędkością przetwarzania a dokładnością, z Balanced zalecanym jako domyślny punkt wyjścia dla większości aplikacji.

Jak ustawić prędkość odczytu podczas skanowania kodów kreskowych?

Prędkość odczytu można ustawić za pomocą klasy BarcodeReaderOptions w IronBarcode. Wystarczy stworzyć nowy obiekt BarcodeReaderOptions i ustawić właściwość Speed na wybraną wartość ReadingSpeed (Faster, Balanced, Detailed lub ExtremeDetail), a następnie przekazać go do metody Read.

Którą opcję prędkości odczytu powinienem użyć w mojej aplikacji?

IronBarcode zaleca rozpoczęcie od ustawienia Balanced dla większości aplikacji. Jeśli posiadasz wysokiej jakości, wyraźne obrazy kodów kreskowych, możesz użyć trybu Faster. Dla zniszczonych lub niskiej jakości obrazów rozważ użycie trybów Detailed lub ExtremeDetail w celu uzyskania lepszej dokładności.

Jaki jest kompromis między różnymi opcjami prędkości odczytu?

Kompromis w szybkościach odczytu w IronBarcode polega na prędkości przetwarzania i dokładności. Tryb Faster przetwarza obrazy szybko, ale może nie wykryć kodów kreskowych w niskiej jakości obrazach. Tryb ExtremeDetail zapewnia najwyższą dokładność, ale wymaga więcej czasu przetwarzania i zasobów pamięci.

Czy mogę odczytywać różne formaty kodów kreskowych z różnymi ustawieniami prędkości?

Tak, IronBarcode obsługuje odczyt różnych formatów kodów kreskowych, w tym kodów QR z wszystkimi ustawieniami prędkości. Ustawienie prędkości wpływa na podejście do przetwarzania, ale nie ogranicza typów kodów kreskowych, które można odczytać. Odwiedź stronę obsługiwanych formatów kodów kreskowych, aby poznać pełną listę.

Jak jakość obrazu wpływa na wybór prędkości odczytu?

Jakość obrazu bezpośrednio wpływa na wybór prędkości w IronBarcode. Wyraźne, wysokiej jakości obrazy kodów kreskowych mogą być przetwarzane wydajnie z trybem Faster. Zdegradowane, zamazane lub niskiego kontrastu obrazy wymagają trybów Detailed lub ExtremeDetail, aby zapewnić dokładne wykrywanie i odczyt kodów kreskowych.

Jaki jest minimalny przepływ pracy dla odczytu kodów kreskowych z opcjami prędkości?

Minimalny przepływ pracy z IronBarcode obejmuje 5 kroków: 1) Pobierz bibliotekę C#, 2) Użyj BarcodeReaderOptions, aby ustawić prędkość odczytu, 3) Wywołaj metodę Read z ścieżką do obrazu, 4) Wyodrębnij i wydrukuj wartości kodów kreskowych, 5) Oceń kompromisy wydajności między różnymi prędkościami.

Jak zmierzyć wpływ wydajności różnych prędkości odczytu?

Wydajność IronBarcode z różnymi prędkościami odczytu można zmierzyć przy użyciu bibliotek benchmarkowych .NET do śledzenia czasu przetwarzania i zużycia pamięci. Pomaga to zidentyfikować optymalne ustawienie prędkości dla twojego specyficznego przypadku użycia i ograniczeń zasobów.

What is the impact of applying heavy processing in the ExtremeDetail setting?

The ExtremeDetail setting significantly lowers reading performance and increases CPU usage due to intensive image preprocessing. It can recover certain barcodes more effectively than other settings, particularly in highly degraded images.

Which barcode reading speed setting should I use for high-volume processing?

For high-volume processing with clear, high-quality images, the Faster setting is optimal due to its speed and low resource consumption. However, it's important to test it against your specific data set to ensure it meets your needs.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

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

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