Jak odczytać kody kreskowe z obrazów w C#

Jak odczytywać BARCODES z obrazów przy użyciu języka C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode odczytuje kody kreskowe z obrazów w C# za pomocą pojedynczej linii kodu używając BarcodeReader.Read(), wspierając różne formaty obrazów, w tym PNG, JPEG, GIF, BMP, TIFF i SVG, z możliwościami dostosowywania w celu poprawy wydajności i dokładności.

Jedną z kluczowych funkcji IronBarcode jest możliwość odczytu kodów kreskowych w wielu formatach obrazów bez konieczności dodatkowej konfiguracji. Obecnie IronBarcode obsługuje następujące formaty obrazów:

  • Skalowalna grafika wektorowa (SVG)
  • Joint Photographic Experts Group (JPEG)
  • Portable Network Graphics (PNG)
  • Graphics Interchange Format (GIF)
  • Format plików graficznych z tagami (TIFF)
  • Plik obrazu bitmapowego (BMP)

This is made possible with the help of our open source library, IronDrawing. Pełną listę obsługiwanych formatów BARCODE, w tym zarówno typów 1D, jak i 2D, można znaleźć w naszej obszernej dokumentacji.

Szybki start: Odczytuj BarCodes z obrazu w kilka sekund

Za pomocą jednego prostego wywołania IronBarCode.BarcodeReader.Read() możesz wyodrębnić dane z kodów kreskowych bezpośrednio z formatów plików obrazów, takich jak PNG, JPEG, GIF, BMP i TIFF. Zacznij od razu — bez skomplikowanej konfiguracji, tylko natychmiastowe wyniki.

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode
  2. Skopiuj i uruchom ten fragment kodu.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png");
  3. Wdrożenie do testowania w środowisku produkcyjnym

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

    arrow pointer

Jak odczytywać BarCodes bezpośrednio z obrazów?

Oto jak używać IronBarcode do odczytu kodów kreskowych. Aby uzyskać obszerny samouczek dotyczący odczytu kodów kreskowych w języku C# / .NET, w tym zaawansowanych technik przetwarzania plików PDF i operacji wsadowych, zapoznaj się z naszym szczegółowym przewodnikiem:

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-images-1.cs
using IronBarCode;
using System;

var myBarcode = BarcodeReader.Read(@"image_file_path.jpg"); //image file path

foreach (var item in myBarcode)
{
    Console.WriteLine(item.ToString());
}
Imports IronBarCode
Imports System

Private myBarcode = BarcodeReader.Read("image_file_path.jpg") 'image file path

For Each item In myBarcode
	Console.WriteLine(item.ToString())
Next item
$vbLabelText   $csharpLabel
Sample QR code with finder patterns for testing barcode reading from images
Przykładowy kod QR do testów
Sample barcode with black vertical lines on white background for testing image-based barcode reading
Przykładowy BarCode testowy

Chcesz wiedzieć, jakie są wartości BarCode w przykładach? Wypróbuj to za pomocą fragmentu kodu!

Aby używać IronBarcode, pierwszą rzeczą, którą musisz zrobić, jest zainstalowanie biblioteki IronBarcode poprzez menedżera pakietów NuGet Microsoft Visual Studio w twoim projekcie, jak pokazano na poniższym zdjęciu. To pozwoli Ci uzyskać dostęp do metody BarcodeReader.Read() IronBarcode w celu bezpośredniego odczytywania obrazów kodów kreskowych.

IronBarcode oferuje prostotę, pozwalając użytkownikom na używanie tylko BarcodeReader.Read() do odczytywania pliku obrazu, który został już dodany do projektu, podając łańcuch nazwa pliku LUB łańcuch ścieżka pliku jako parametr dla metody. Najlepszą praktyką jest użycie dosłownego ciągu znaków, '@' podczas określania ścieżki pliku w metodzie, aby uniknąć dodatkowych znaków ucieczki '\' w ciągu ścieżki pliku.

Dołącz metodę Values() na końcu wywołania metody BarcodeReader.Read(), aby uzyskać wartość kodu kreskowego jako obiekt System.String[].

Aby wyprowadzić wynik do konsoli, możesz użyć pętli foreach, aby iterować wartości przechowywane w tablicy string[], a wewnątrz bloku pętli, wywołać metodę Console.WriteLine() z zmienną iteratora jako parametrem.

IronBarcode potrafi odczytywać jednowymiarowe formaty kodów kreskowych (Codabar, Code128, Code39, Code93, EAN13, EAN18, ITF, MSI, UPCA, UPCE) oraz dwuwymiarowe formaty kodów kreskowych (Aztec, DataMatrix, QRCode) w różnych formatach obrazów.

Jak Mogę Skonfigurować Opcje Odczytu Kodów Kreskowych dla Lepszej Wydajności?

Czy odczytywanie kodu kreskowego jest zbyt wolne? Czy kod kreskowy na zdjęciu jest zbyt mały, co uniemożliwia IronBarcode jego odczytanie? Chcesz odczytać tylko określone obszary obrazu? Chcesz odczytać tylko określone typy kodów kreskowych z obrazu zawierającego mieszankę kodów kreskowych? Chcesz poprawić ogólną wydajność odczytu?

BarcodeReaderOptions pozwala użytkownikom regulować lub dostosowywać zachowanie czytnika kodów kreskowych, aby rozwiązać te wszystkie problemy. Aby uzyskać szczegółowe przykłady ustawiania opcji czytnika kodów kreskowych, sprawdź nasz kompleksowy przewodnik. Poniższe sekcje omawiają wszystkie dostępne do regulacji właściwości w BarcodeReaderOptions jedna po drugiej.

Jak Określić, Który Obszar Obrazu Czytać?

CropArea jest właściwością typu IronSoftware.Drawing.CropRectangle dostępną w BarcodeReaderOptions, która pozwala użytkownikom określić obszar na obrazie, który IronBarcode powinien odczytać. Pomaga to poprawić wydajność odczytu, ponieważ czytnik kodów kreskowych nie skanuje całego obrazu w poszukiwaniu kodów kreskowych, a także zwiększa dokładność odczytu, ponieważ obszar do odczytu został określony. Dowiedz się więcej o tym, jak określić obszar kadrowania dla optymalnej wydajności.

Aby ustawić właściwość CropArea, po prostu zainicjuj nowy obiekt typu Rectangle i określ współrzędne prostokąta, szerokość i długość prostokąta jako argumenty. Jednostka miary akceptowana to piksele (px).

// Example of setting CropArea
var cropArea = new IronSoftware.Drawing.Rectangle(x: 100, y: 100, width: 300, height: 300);
var options = new BarcodeReaderOptions()
{
    CropArea = cropArea
};
// Example of setting CropArea
var cropArea = new IronSoftware.Drawing.Rectangle(x: 100, y: 100, width: 300, height: 300);
var options = new BarcodeReaderOptions()
{
    CropArea = cropArea
};
Imports IronSoftware.Drawing

' Example of setting CropArea
Dim cropArea As New Rectangle(x:=100, y:=100, width:=300, height:=300)
Dim options As New BarcodeReaderOptions() With {
    .CropArea = cropArea
}
$vbLabelText   $csharpLabel

Które Typy Kodów Kreskowych Powinienem Określić dla Szybszego Odczytu?

Domyślnie, wszystkie obsługiwane kody kreskowe w IronBarcode będą skanowane w obrazie. Jednak jeśli użytkownik wie, jakie typy kodów kreskowych są dostępne lub chce, aby były odczytywane w obrazie, ustawienie tej właściwości na odczytywanie tylko określonych typów kodów kreskowych znacznie zwiększy wydajność odczytu i dokładność, ponieważ czytnik kodów kreskowych nie musi iterować przez kolekcje kodów kreskowych, aby zinterpretować i odczytać kod kreskowy.

Aby użyć tej właściwości, po prostu ustaw ExpectBarcodeTypes na jedno z pól wyliczenia BarcodeEncoding. Poniżej znajdują się przykłady każdego typu kodu kreskowego obsługiwanego przez IronBarcode.

// Example: Expect only QR codes and Code128
var options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};
// Example: Expect only QR codes and Code128
var options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};
' Example: Expect only QR codes and Code128
Dim options As New BarcodeReaderOptions() With {
    .ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}
$vbLabelText   $csharpLabel

Oto lista typów kodów kreskowych z przykładami i wyjaśnieniami przedstawionymi wcześniej.

Kiedy Powinienem Wyłączyć Odczyt Wielu Kodów Kreskowych?

IronBarcode domyślnie przeskanuje wszystkie dostępne kody kreskowe na obrazie, co obejmuje skanowanie całego pliku obrazu i dodanie odczytanych wartości kodów kreskowych do tablicy stringów. Jednakże, jeśli użytkownicy nie chcą odczytywać wielu kodów kreskowych na pliku obrazu, mogą ustawić tę właściwość na false, co sprawi, że czytnik kodów kreskowych przestanie skanować, gdy znajdzie wartość kodu kreskowego. Ponownie poprawi to wydajność i szybkość odczytu IronBarcode. Więcej informacji na temat odczytywania wielu kodów kreskowych znajdziesz w naszym dedykowanym przewodniku.

Jak Filtry Obrazów Poprawiają Rozpoznawanie Kodów Kreskowych?

Jedną z właściwości, które można dodać w BarcodeReaderOptions, jest kolekcja filtrów obrazu. Filtry obrazu są ważne do wstępnego przetwarzania surowego obrazu przekazywanego do IronBarcode. Aby zastosować filtry obrazu wewnątrz BarcodeReaderOptions, użytkownicy muszą najpierw zainicjować i określić kolekcję ImageFilter do użycia. Aby uzyskać pełne wskazówki na temat technik korekty obrazu, w tym zastosowania filtrów, odwiedź nasz poradnik.

Jak Mogę Optymalizować Wątkowanie dla Lepszej Wydajności?

IronBarcode pozwala użytkownikom włączyć i dostosować ilość wykonywania równoległych wątków, co z kolei poprawi szybkość i efektywność procesu. Równoległe wątki oznaczają wykonywanie wielu wątków jednocześnie na różnych rdzeniach procesora. Domyślna ilość dla właściwości MaxParallelThread w IronBarcode to 4. Użytkownicy mogą je dostosować w zależności od możliwości i ilości zasobów, jakimi dysponują ich maszyny.

Czy Powinienem Włączyć Wielowątkowe Przetwarzanie?

Ta właściwość umożliwia IronBarcode równoległe odczytywanie wielu obrazów. Domyślnie dla Multithreaded jest true, zatem wiele wątków będzie automatycznie zarządzane w celu poprawy wydajności zadań odczytu wsadowego kodów kreskowych.

Dlaczego Powinienem Usuwać Fałszywe Pozytywne Odczyty?

Ta właściwość usuwa wszelkie fałszywie pozytywne odczyty kodów kreskowych. Fałszywe pozytywne odczyty kodów kreskowych oznaczają po prostu fałszywy odczyt wartości kodu kreskowego, który jednak został zidentyfikowany jako poprawny. Może to się zdarzyć z powodu błędów w procesie sekwencjonowania lub błędów w etykietowaniu lub przygotowywaniu kodu kreskowego. Dlatego ustawienie RemoveFalsePositive jako true usunie fałszywie pozytywne odczyty, co poprawi dokładność odczytu kodu kreskowego. Jednakże, jeśli użytkownicy wybierają wydajność kosztem dokładności, ustawienie tej właściwości na false może pomóc. Wartość domyślna dla tej właściwości to true.

Jak MinScanLines Wpływa na Dokładność Wykrywania?

MinScanLines ustala minimalną liczbę linii skanowania, które muszą potwierdzać wynik kodu kreskowego, aby uznać go za ważny. Domyślnie jest to 2. Zwiększenie tej wartości zmniejsza liczbę fałszywych pozytywów, ale może uniemożliwić wykrycie cienkich lub niskiej jakości kodów kreskowych. Obniżenie do 1 zwiększa czułość na trudne kody kreskowe, narażając się jednak na wprowadzenie zakłóceń.

Jakie Tryby Skanowania Są Dostępne dla Różnych Zastosowań?

Określ, jak IronBarcode skanuje i wykrywa kody kreskowe na obrazie.

  • Auto: Odczytuje kody kreskowe z automatycznym wstępnym przetwarzaniem obrazu i najbardziej optymalnie skonfigurowanymi opcjami czytnika. Zalecane dla najlepszych wyników i wydajności.
  • OnlyDetectionModel: Skanuje obraz w poszukiwaniu kodów kreskowych i zwraca ich pozycje jako tablicę IronSoftware.Drawing.PointF. Ten tryb nie odczytuje wykrytych kodów kreskowych; zwraca tylko pozycje każdego kodu kreskowego.
  • MachineLearningScan: Skanuje obraz w poszukiwaniu kodów kreskowych z wykrywaniem opartym na uczeniu maszynowym i je odczytuje.
  • OnlyBasicScan: Odczytuje kody kreskowe bez wykrywania opartego na uczeniu maszynowym, automatycznego przetwarzania wstępnego obrazu ani konfiguracji opcji czytnika. This option can be used with IronBarCode.Slim alone.

Jak Ustawienia Prędkości Odczytu Wpływają na Dokładność?

Jak sugeruje nazwa, właściwość Speed pozwala użytkownikom na dalsze optymalizowanie wydajności czytnika IronBarcode. Podobnie jak właściwość RemoveFalsePositive, dostosowanie tej właściwości poprawia wydajność kosztem dokładności. Aby uzyskać dogłębną analizę opcji prędkości odczytu, w tym benchmarki wydajności, zobacz nasz szczegółowy przewodnik. Akceptuje on wyliczenie ReadingSpeed, które ma 4 poziomy, jak pokazano poniżej:

  • Faster: Umożliwia najszybsze odczytywanie kodów kreskowych, ale zmniejsza dokładność. Proces pomija wstępne przetwarzanie obrazu, co często skutkuje pustymi wynikami kodów kreskowych. Używaj tego ustawienia tylko wtedy, gdy wejściowy obraz jest ostry i wyraźny.
  • Balanced: To ustawienie jest zalecane dla właściwości Speed. Ustawia równowagę między dokładnością a wydajnością odczytu, starając się zastosować lekkie przetwarzanie obrazu, aby wyjaśnić obszar kodu kreskowego i wyróżnić go dla czytnika kodów kreskowych. Większość czasu to ustawienie wystarcza, aby IronBarcode mógł odczytać obraz kodu kreskowego i wyprodukować dokładny wynik.
  • Detailed: W przypadkach, gdzie użycie ustawienia ReadingSpeed.Balanced nie jest skuteczne w uzyskaniu wartości z odczytu kodów kreskowych, użytkownicy mogą zdecydować się na użycie ReadingSpeed.Detailed. IronBarcode przeprowadzi średnie przetwarzanie obrazu, aby dalsze i dokładniejsze wykrycie obszaru kodu kreskowego dla czytnika. To ustawienie jest bardzo przydatne do wykrywania małych lub mniej ostrych obrazów kodów kreskowych.
  • ExtremeDetail: To ustawienie jest najmniej zalecane ze względu na jego proces intensywny dla procesora. Ciężkie przetwarzanie zostanie wykonane na wizerunku kodu kreskowego, aby czytnik mógł odczytać kody kreskowe. Użytkownicy są zalecani, aby przed użyciem tego ustawienia dokonać wstępnego oczyszczenia obrazu/stosowania filtrów na obrazie.

Kiedy Powinienem Używać Trybu Rozszerzonego Code39?

To ustawienie pozwala na odczytywanie i interpretowanie kodów kreskowych typu Code39 z trybem rozszerzonym, gdzie zostanie zastosowany pełny zbiór znaków ASCII. Ustawienie UseCode39ExtendedMode na true umożliwi bardziej dokładne odczytywanie kodów kreskowych Code39.

Jak Zaimplementować Zaawansowane Odczytywanie Kodu Kreskowego z Własnymi Opcjami?

Teraz, gdy poznaliśmy wszystkie opcje, które można dostosowywać przez użytkowników, czy to dla zwiększenia wydajności, czy dokładności, oto jak zastosować je w kodzie. Przykład kodu poniżej demonstruje kompleksowe użycie BarcodeReaderOptions:

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Linq;

// Create custom reader options
var options = new BarcodeReaderOptions()
{
    // Specify expected barcode types for better performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128 | BarcodeEncoding.Code39,

    // Define specific area to scan (x, y, width, height in pixels)
    CropArea = new Rectangle(100, 100, 500, 400),

    // Set reading speed to balance accuracy and performance
    Speed = ReadingSpeed.Balanced,

    // Enable multithreading for better performance
    Multithreaded = true,
    MaxParallelThreads = 4,

    // Remove false positives for accuracy
    RemoveFalsePositive = true,

    // Minimum scan lines that must agree for a valid result (default 2)
    MinScanLines = 1,

    // Enable Code39 extended mode if needed
    UseCode39ExtendedMode = true,

    // Set scan mode
    ScanMode = BarcodeReaderScanMode.Auto,

    // Add image filters for better recognition
    ImageFilters = new ImageFilterCollection() { 
        new SharpenFilter(),
        new InvertFilter(),
        new ContrastFilter()
    }
};

// Read barcodes with custom options
var results = BarcodeReader.Read(@"C:\path\to\your\barcode-image.png", options);

// Process results
if (results.Any())
{
    foreach (var barcode in results)
    {
        Console.WriteLine($"Barcode Type: {barcode.BarcodeType}");
        Console.WriteLine($"Value: {barcode.Value}");
        Console.WriteLine($"Confidence: {barcode.Confidence}%");
        Console.WriteLine($"Position: X={barcode.X}, Y={barcode.Y}");
        Console.WriteLine("---");
    }
}
else
{
    Console.WriteLine("No barcodes found in the image.");
}
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Linq;

// Create custom reader options
var options = new BarcodeReaderOptions()
{
    // Specify expected barcode types for better performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128 | BarcodeEncoding.Code39,

    // Define specific area to scan (x, y, width, height in pixels)
    CropArea = new Rectangle(100, 100, 500, 400),

    // Set reading speed to balance accuracy and performance
    Speed = ReadingSpeed.Balanced,

    // Enable multithreading for better performance
    Multithreaded = true,
    MaxParallelThreads = 4,

    // Remove false positives for accuracy
    RemoveFalsePositive = true,

    // Minimum scan lines that must agree for a valid result (default 2)
    MinScanLines = 1,

    // Enable Code39 extended mode if needed
    UseCode39ExtendedMode = true,

    // Set scan mode
    ScanMode = BarcodeReaderScanMode.Auto,

    // Add image filters for better recognition
    ImageFilters = new ImageFilterCollection() { 
        new SharpenFilter(),
        new InvertFilter(),
        new ContrastFilter()
    }
};

// Read barcodes with custom options
var results = BarcodeReader.Read(@"C:\path\to\your\barcode-image.png", options);

// Process results
if (results.Any())
{
    foreach (var barcode in results)
    {
        Console.WriteLine($"Barcode Type: {barcode.BarcodeType}");
        Console.WriteLine($"Value: {barcode.Value}");
        Console.WriteLine($"Confidence: {barcode.Confidence}%");
        Console.WriteLine($"Position: X={barcode.X}, Y={barcode.Y}");
        Console.WriteLine("---");
    }
}
else
{
    Console.WriteLine("No barcodes found in the image.");
}
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Linq

' Create custom reader options
Dim options As New BarcodeReaderOptions() With {
    ' Specify expected barcode types for better performance
    .ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128 Or BarcodeEncoding.Code39,

    ' Define specific area to scan (x, y, width, height in pixels)
    .CropArea = New Rectangle(100, 100, 500, 400),

    ' Set reading speed to balance accuracy and performance
    .Speed = ReadingSpeed.Balanced,

    ' Enable multithreading for better performance
    .Multithreaded = True,
    .MaxParallelThreads = 4,

    ' Remove false positives for accuracy
    .RemoveFalsePositive = True,

    ' Minimum scan lines that must agree for a valid result (default 2)
    .MinScanLines = 1,

    ' Enable Code39 extended mode if needed
    .UseCode39ExtendedMode = True,

    ' Set scan mode
    .ScanMode = BarcodeReaderScanMode.Auto,

    ' Add image filters for better recognition
    .ImageFilters = New ImageFilterCollection() From {
        New SharpenFilter(),
        New InvertFilter(),
        New ContrastFilter()
    }
}

' Read barcodes with custom options
Dim results = BarcodeReader.Read("C:\path\to\your\barcode-image.png", options)

' Process results
If results.Any() Then
    For Each barcode In results
        Console.WriteLine($"Barcode Type: {barcode.BarcodeType}")
        Console.WriteLine($"Value: {barcode.Value}")
        Console.WriteLine($"Confidence: {barcode.Confidence}%")
        Console.WriteLine($"Position: X={barcode.X}, Y={barcode.Y}")
        Console.WriteLine("---")
    Next
Else
    Console.WriteLine("No barcodes found in the image.")
End If
$vbLabelText   $csharpLabel

Z przykładu kodu widzimy, że aby użyć BarcodeReaderOptions, musimy najpierw go zainicjować, a następnie określić i dostosować właściwości BarcodeReaderOptions zgodnie z wyżej wymienionymi właściwościami. Zainicjowany BarcodeReaderOptions może następnie zostać użyty jako argument w metodzie BarcodeReader.Read() wraz z plikiem obrazu. To zastosuje wszystkie ustawienia w BarcodeReaderOptions podczas odczytywania kodu kreskowego z obrazu.

Jeśli napotkasz problemy, w których kod kreskowy nie jest rozpoznawany, nasz przewodnik rozwiązywania problemów oferuje rozwiązania dla powszechnych problemów oraz wskazówki poprawiające dokładność skanowania kodów kreskowych.

Często Zadawane Pytania

Jakie formaty obrazów są obsługiwane do odczytu kodów kreskowych w C#?

IronBarcode obsługuje odczytywanie kodów kreskowych z wielu formatów obrazów, w tym SVG (Scalable Vector Graphics), JPEG, PNG, GIF, TIFF (Tagged Image File Format) i BMP (Bitmap Image File). Ta wszechstronna obsługa formatów jest możliwa dzięki IronDrawing, umożliwiając płynne wydobywanie kodów kreskowych z różnych typów obrazów.

Jak mogę odczytać kod kreskowy z pliku obrazu za pomocą tylko jednej linii kodu?

Dzięki IronBarcode można odczytać kody kreskowe z obrazów za pomocą jednej linii kodu: `var results = IronBarCode.BarcodeReader.Read("path/to/image.png");`. To proste wywołanie metody automatycznie wykrywa i wydobywa dane kodu kreskowego z plików PNG, JPEG, GIF, BMP i TIFF bez konieczności skomplikowanej konfiguracji.

Czy mogę określić, które rodzaje kodów kreskowych mają być wyszukiwane przy odczytywaniu obrazów?

Tak, IronBarcode pozwala określić rodzaje kodów kreskowych, używając właściwości ExpectBarcodeTypes w BarcodeReaderOptions. To ukierunkowane podejście poprawia wydajność odczytu, koncentrując się tylko na formatach kodów kreskowych, które spodziewasz się znaleźć w swoich obrazach.

Czy jest możliwe odczytywanie kodów kreskowych z określonego obszaru w obrębie obrazu?

Zdecydowanie! IronBarcode oferuje właściwość CropArea, która pozwala określić konkretne obszary w obrębie obrazu, gdzie znajdują się kody kreskowe. Ta funkcja jest szczególnie przydatna dla dużych obrazów lub gdy znasz przybliżoną lokalizację kodów kreskowych, znacznie poprawiając szybkość przetwarzania.

Jak skonfigurować zaawansowane ustawienia odczytu dla lepszej dokładności?

IronBarcode oferuje klasę BarcodeReaderOptions do konfiguracji zaawansowanych ustawień odczytu. Obejmuje to opcje dostosowywania czułości detekcji kodów kreskowych, wstępnej obróbki obrazów i innych parametrów, które mogą poprawić dokładność przy pracy z trudnymi obrazami lub specyficznymi typami kodów kreskowych.

Co sprawia, że odczytywanie kodów kreskowych z obrazów jest proste dla deweloperów C#?

IronBarcode upraszcza odczytywanie kodów kreskowych dzięki metodzie BarcodeReader.Read(), która działa out-of-the-box z wieloma formatami obrazów. Programiści muszą jedynie podać nazwę pliku lub ścieżkę do pliku jako parametr, co sprawia, że integracja funkcjonalności odczytu kodów kreskowych do każdej aplikacji C# jest niezwykle prosta.

Hairil Hasyimi Bin Omar
Inżynier oprogramowania
Jak wszyscy wielcy inżynierowie, Hairil jest zapalonym uczniem. Doskonali swoją wiedzę na temat C#, Pythona i Javy, wykorzystując tę wiedzę, aby dodawać wartości członkom zespołu Iron Software. Hairil dołączył do zespołu Iron Software z Universiti Teknologi MARA w Malezji, gdzie uzyskał tytuł licencjata ...
Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 2,145,441 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package BarCode
uruchom przykład zobacz, jak twoje ciągi zamieniają się w kody kreskowe.