C# Barcode Scanner: Read Barcodes & QR Codes in .NET Applications
Potrzebujesz szybko zeskanować kody kreskowe lub kody QR w swojej aplikacji .NET? IronBarcode sprawia, że odczytywanie kodów kreskowych jest proste i niezawodne, niezależnie od tego, czy przetwarzasz idealne obrazy cyfrowe, czy trudne zdjęcia rzeczywiste. Ten przewodnik pokazuje, jak dokładnie zaimplementować skanowanie kodów kreskowych w C# z praktycznymi przykładami, które możesz użyć od razu.
Szybki start: Odczytaj kod kreskowy z pliku natychmiast
Ten szybki przykład pokazuje, jak łatwo jest zacząć z IronBarcode. Wystarczy jedna linia kodu, aby odczytać kody kreskowe z pliku graficznego—bez konieczności skomplikowanej konfiguracji.
-
Install IronBarcode with NuGet Package Manager
-
Skopiuj i uruchom ten fragment kodu.
var results = IronBarCode.BarcodeReader.Read("path/to/barcode.png"); -
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)
- Zainstaluj IronBarcode z NuGet lub pobierz jako plik DLL
- Użyj metody
BarcodeReader.Read, aby zeskanować dowolny kod kreskowy lub kod QR - Odczytuj wiele kodów kreskowych lub kodów QR podczas jednego skanowania, w pliku PDF lub wieloklatkowym pliku TIFF
- Włącz IronBarcode do dekodowania niedoskonałych skanów i zdjęć, używając zaawansowanych filtrów
- Pobierz projekt z samouczkiem i zacznij skanować natychmiast
Jak zainstalować IronBarcode w moim projekcie .NET?
IronBarcode instaluje się łatwo przez Menedżera Pakietów NuGet lub pobierając bezpośrednio plik DLL. Instalacja z NuGet jest zalecanym podejściem, ponieważ automatycznie zarządza zależnościami i aktualizacjami.
Install-Package BarCode
Po instalacji, dodaj using IronBarCode; do swoich plików C#, aby uzyskać dostęp do funkcji skanowania kodów kreskowych. Aby zapoznać się z szczegółowymi instrukcjami instalacji w różnych środowiskach deweloperskich, sprawdź nasz przewodnik instalacji.
Jak mogę odczytać mój pierwszy kod kreskowy za pomocą C#?
Odczytywanie kodów kreskowych z IronBarcode wymaga zaledwie jednej linii kodu. Biblioteka automatycznie wykrywa formaty kodów kreskowych i wyodrębnia wszystkie zakodowane dane.
*Standardowy kod kreskowy Code128, który IronBarcode może odczytać natychmiast*:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-3.cs
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose which filters are to be applied (in order)
ImageFilters = new ImageFilterCollection() {
new AdaptiveThresholdFilter(),
},
// Uses machine learning to auto rotate the barcode
AutoRotate = true,
};
// Read barcode
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
Imports IronBarCode
Private options As New BarcodeReaderOptions() With {
.ImageFilters = New ImageFilterCollection() From {New AdaptiveThresholdFilter()},
.AutoRotate = True
}
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
Metoda BarcodeReader.Read zwraca kolekcję BarcodeResults zawierającą wszystkie wykryte kody kreskowe. Każdy BarcodeResult zapewnia dostęp do wartości tekstowej kodu kreskowego, typu formatu, współrzędnych położenia i danych binarnych. To podejście działa bezproblemowo z typowymi formatami kodów kreskowych, w tym Code128, Code39, kodami QR i kodami Data Matrix.
Jakie opcje pomagają odczytywać trudne lub uszkodzone kody kreskowe?
Skanowanie kodów kreskowych w rzeczywistym świecie często obejmuje niedoskonałe obrazy - przechylone kąty, słabe oświetlenie lub częściowe uszkodzenia. Zaawansowane opcje IronBarcode radzą sobie skutecznie z tymi wyzwaniami.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-4.cs
using IronBarCode;
using System;
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
foreach (var pageResult in results)
{
string Value = pageResult.Value;
int PageNum = pageResult.PageNumber;
System.Drawing.Bitmap Img = pageResult.BarcodeImage;
BarcodeEncoding BarcodeType = pageResult.BarcodeType;
byte[] Binary = pageResult.BinaryValue;
Console.WriteLine(pageResult.Value + " on page " + PageNum);
}
Imports IronBarCode
Imports System
' Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
Private results As BarcodeResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results
For Each pageResult In results
Dim Value As String = pageResult.Value
Dim PageNum As Integer = pageResult.PageNumber
Dim Img As System.Drawing.Bitmap = pageResult.BarcodeImage
Dim BarcodeType As BarcodeEncoding = pageResult.BarcodeType
Dim Binary() As Byte = pageResult.BinaryValue
Console.WriteLine(pageResult.Value & " on page " & PageNum)
Next pageResult
*Obrócony kod QR, który IronBarcode skutecznie odczytuje przy użyciu zaawansowanych opcji*Właściwość ExpectBarcodeTypes znacząco poprawia wydajność, ograniczając wyszukiwanie do określonych formatów. Dla maksymalnej dokładności przy problematycznych obrazach, połącz filtry obrazów z automatycznym obrotem:
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-5.cs
using IronBarCode;
// Multi frame TIFF and GIF images can also be scanned
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var pageResult in multiFrameResults)
{
//...
}
Imports IronBarCode
' Multi frame TIFF and GIF images can also be scanned
Private multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")
For Each pageResult In multiFrameResults
'...
Next pageResult
Te zaawansowane funkcje czynią IronBarcode idealnym do skanowania kodów kreskowych ze zdjęć, kamer bezpieczeństwa lub ujęć z urządzeń mobilnych, gdzie jakość obrazu znacznie się różni.
Jak mogę zeskanować wiele kodów kreskowych z dokumentów PDF?
Skanowanie kodów kreskowych z dokumentów PDF jest kluczowe do przetwarzania faktur, etykiet wysyłkowych i dokumentów inwentaryzacyjnych. IronBarcode odczytuje wszystkie kody kreskowe na każdej stronie efektywnie.
Odczytywanie kodów kreskowych z plików PDF
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-6.cs
using IronBarCode;
// The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
var ListOfDocuments = new[] { "image1.png", "image2.JPG", "image3.pdf" };
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Enable multithreading
Multithreaded = true,
};
BarcodeResults batchResults = BarcodeReader.Read(ListOfDocuments, options);
Imports IronBarCode
' The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
Private ListOfDocuments = { "image1.png", "image2.JPG", "image3.pdf" }
Private options As New BarcodeReaderOptions() With {.Multithreaded = True}
Private batchResults As BarcodeResults = BarcodeReader.Read(ListOfDocuments, options)
Konsolowy wynik pokazujący wiele kodów kreskowych znalezionych na różnych stronach PDF
Dla określonych zakresów stron lub zaawansowanego przetwarzania PDF, użyj BarcodeReaderOptions:
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-7.cs
// Read only specific pages to improve performance
PdfBarcodeReaderOptions pdfOptions = new PdfBarcodeReaderOptions
{
// Scan pages 1-5 only
PageNumbers = new[] { 1, 2, 3, 4, 5 },
// PDF-specific settings
DPI = 300 // Higher DPI for better accuracy
};
BarcodeResults results = BarcodeReader.ReadPdf("document.pdf", pdfOptions);
Imports System
' Read only specific pages to improve performance
Dim pdfOptions As New PdfBarcodeReaderOptions With {
' Scan pages 1-5 only
.PageNumbers = New Integer() {1, 2, 3, 4, 5},
' PDF-specific settings
.DPI = 300 ' Higher DPI for better accuracy
}
Dim results As BarcodeResults = BarcodeReader.ReadPdf("document.pdf", pdfOptions)
Jak mogę przetwarzać obrazy TIFF z wieloma klatkami?
Pliki TIFF z wieloma klatkami, powszechne w systemach skanowania dokumentów i faksów, otrzymują taką samą wszechstronną obsługę jak pliki PDF.
Plik TIFF z wieloma klatkami z kodami kreskowymi na różnych klatkach
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-8.cs
using IronBarCode;
// TIFF files are processed similarly to regular images
// Each frame is scanned automatically
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var result in multiFrameResults)
{
// Access frame-specific information
int frameNumber = result.PageNumber; // Frame number in TIFF
string barcodeValue = result.Text;
Console.WriteLine($"Frame {frameNumber}: {barcodeValue}");
// Save individual barcode images if needed
result.BarcodeImage?.Save($"barcode_frame_{frameNumber}.png");
}
Imports IronBarCode
' TIFF files are processed similarly to regular images
' Each frame is scanned automatically
Dim multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")
For Each result In multiFrameResults
' Access frame-specific information
Dim frameNumber As Integer = result.PageNumber ' Frame number in TIFF
Dim barcodeValue As String = result.Text
Console.WriteLine($"Frame {frameNumber}: {barcodeValue}")
' Save individual barcode images if needed
result.BarcodeImage?.Save($"barcode_frame_{frameNumber}.png")
Next
Te same BarcodeReaderOptions mają zastosowanie do przetwarzania TIFF, w tym filtry obrazów i ustawienia obrotu. Dla szczegółowych scenariuszy obsługi TIFF, zobacz nasze samouczki przetwarzania obrazów.
Czy mogę przyspieszyć przetwarzanie przy użyciu wielowątkowości?
Przetwarzanie wielu dokumentów korzysta znacznie z przetwarzania równoległego. IronBarcode automatycznie wykorzystuje dostępne rdzenie CPU dla optymalnej wydajności.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-9.cs
using IronBarCode;
// List of documents to process - mix of formats supported
var documentBatch = new[]
{
"invoice1.pdf",
"shipping_label.png",
"inventory_sheet.tiff",
"product_catalog.pdf"
};
// Configure for batch processing
BarcodeReaderOptions batchOptions = new BarcodeReaderOptions
{
// Enable parallel processing across documents
Multithreaded = true,
// Limit threads if needed (0 = use all cores)
MaxParallelThreads = Environment.ProcessorCount,
// Apply consistent settings to all documents
Speed = ReadingSpeed.Balanced,
ExpectBarcodeTypes = BarcodeEncoding.All
};
// Process each document, tracking the source path externally
foreach (var document in documentBatch)
{
BarcodeResults results = BarcodeReader.Read(document, batchOptions);
Console.WriteLine($"\nDocument: {document}");
foreach (var barcode in results)
{
Console.WriteLine($" - {barcode.BarcodeType}: {barcode.Text}");
}
}
Imports IronBarCode
' List of documents to process - mix of formats supported
Dim documentBatch = New String() {
"invoice1.pdf",
"shipping_label.png",
"inventory_sheet.tiff",
"product_catalog.pdf"
}
' Configure for batch processing
Dim batchOptions As New BarcodeReaderOptions With {
' Enable parallel processing across documents
.Multithreaded = True,
' Limit threads if needed (0 = use all cores)
.MaxParallelThreads = Environment.ProcessorCount,
' Apply consistent settings to all documents
.Speed = ReadingSpeed.Balanced,
.ExpectBarcodeTypes = BarcodeEncoding.All
}
' Process each document, tracking the source path externally
For Each document In documentBatch
Dim results As BarcodeResults = BarcodeReader.Read(document, batchOptions)
Console.WriteLine(vbCrLf & "Document: " & document)
For Each barcode In results
Console.WriteLine($" - {barcode.BarcodeType}: {barcode.Text}")
Next
Next
Ta równoległa metoda przetwarza dokumenty jednocześnie, redukując całkowity czas skanowania do 75% w systemach wielordzeniowych. Dla przetwarzania kodów kreskowych na skalę enterprise zobacz nasz przewodnik optymalizacji wydajności.
Podsumowanie
IronBarcode przekształca skomplikowane skanowanie kodów kreskowych w prosty kod C#. Niezależnie od tego, czy tworzysz systemy magazynowe, procesory dokumentów, czy aplikacje mobilne, biblioteka obsługuje wszystko, od nienaruszonych cyfrowych kodów kreskowych po trudne zdjęcia rzeczywiste.
Omawiane kluczowe możliwości:
- Odczyt jednowierszowy kodów kreskowych z obrazów
- Zaawansowane opcje dla uszkodzonych lub obróconych kodów kreskowych
- Kompleksowe skanowanie dokumentów PDF i TIFF
- Wydajne przetwarzanie wsadowe z wielowątkowością
- Wsparcie dla wszystkich głównych formatów kodów kreskowych
Dalsza lektura
Rozszerz swoje możliwości przetwarzania kodów kreskowych z tymi zasobami:
- Samouczek na temat generowania kodów kreskowych - Twórz niestandardowe kody kreskowe
- QR Code Guide](/csharp/barcode/tutorials/csharp-qr-code-generator/) - Specjalistyczne funkcje kodu QR
BarcodeReaderOdniesienie do klasy - Kompletna dokumentacja API- Przewodnik rozwiązywania problemów - Typowe problemy i rozwiązania
Pliki do pobrania z kodem źródłowym
Uruchom te przykłady samodzielnie:
Gotowy do zaimplementowania skanowania kodów kreskowych w swojej aplikacji? Rozpocznij darmowy okres próbny i dodaj profesjonalne odczytywanie kodów kreskowych do swojego projektu .NET już dziś.
Często Zadawane Pytania
Jak zainstalować bibliotekę do czytania kodów kreskowych w projekcie .NET?
Możesz zainstalować bibliotekę IronBarcode za pośrednictwem Menedżera pakietów NuGet używając polecenia dotnet add package BarCode lub za pomocą interfejsu NuGet w Visual Studio. Alternatywnie, pobierz DLL do ręcznej instalacji.
Jaka jest metoda na przeczytanie kodu kreskowego z obrazu przy użyciu C#?
Użyj metody BarcodeReader.Read z IronBarcode w jednej linii kodu: var results = BarcodeReader.Read('image.png'); Ta metoda wykrywa i czyta wszystkie formaty kodów kreskowych obecne na obrazie.
Czy możliwe jest wykrycie wielu kodów kreskowych na jednym obrazie lub dokumencie?
Tak, IronBarcode może automatycznie wykrywać i czytać wiele kodów kreskowych na obrazie, w pliku PDF lub wieloklatkowym TIFF, zwracając każdą wartość kodu kreskowego, typ i pozycję w kolekcji BarcodeResults.
Jak czytam kody kreskowe z pliku PDF przy użyciu C#?
Użyj metody IronBarcode BarcodeReader.ReadPdf, aby skanować wszystkie strony dokumentu PDF: var results = BarcodeReader.ReadPdf('document.pdf'); Każdy wynik zawiera numer strony, na której został znaleziony kod kreskowy.
Co powinienem zrobić, jeśli obrazy kodów kreskowych są rozmyte lub obrócone?
Skonfiguruj BarcodeReaderOptions, aby obsługiwać trudne obrazy, ustawiając AutoRotate = true i stosując filtry obrazu, takie jak SharpenFilter lub AdaptiveThresholdFilter. Użyj Speed = ExtremeDetail dla lepszej dokładności.
Jakie formaty kodów kreskowych są obsługiwane w aplikacjach .NET?
IronBarcode obsługuje wszystkie główne formaty kodów kreskowych, takie jak QR Code, Code 128, Code 39, EAN-13, UPC-A, Data Matrix, PDF417 i inne. Użyj BarcodeEncoding.All, aby skanować w poszukiwaniu dowolnego obsługiwanego formatu.
Jak mogę poprawić wydajność skanowania kodów kreskowych w aplikacji C#?
Zwiększ wydajność, określając oczekiwane typy kodów kreskowych za pomocą ExpectBarcodeTypes, aktywizując przetwarzanie wielowątkowe i wybierając odpowiednie ustawienia Speed. Do zadań zbiorczych używaj BarcodeReader.Read ze ścieżkami plików.
Jaka jest zalecana metoda obsługi błędów przy czytaniu kodów kreskowych?
Zamykaj czytanie kodów kreskowych w bloki try-catch i sprawdzaj, czy wyniki nie są nullem lub pustymi. IronBarcode dostarcza szczegółowe komunikaty o błędach oraz właściwość Confidence, aby wskazać niezawodność detekcji.
Czy mogę wyodrębnić obrazy kodów kreskowych po ich zeskanowaniu?
Tak, BarcodeResult w IronBarcode zawiera właściwość BarcodeImage, która zawiera Bitmapę wykrytego kodu kreskowego, którą można zapisać lub przetworzyć osobno.
Jak czytać kody kreskowe z określonych stron w dokumencie PDF?
Ustaw właściwość PageNumbers w BarcodeReaderOptions, aby określić strony: options.PageNumbers = new[] {1, 2, 3}; Optymalizuje to wydajność, skanując tylko wyznaczone strony.
Jakie formaty obrazów są kompatybilne ze skanowaniem kodów kreskowych w .NET?
IronBarcode obsługuje skanowanie w formatach takich jak PNG, JPEG, BMP, GIF, TIFF (w tym wieloklatkowe) i PDF. Możesz ładować obrazy ze ścieżek plików, strumieni lub tablicy bajtów.
Jak uzyskać dane binarne z zeskanowanych kodów kreskowych w C#?
Wykorzystaj właściwość BinaryValue klasy BarcodeResult, aby uzyskać surowe dane binarne, szczególnie przydatne dla kodów kreskowych zawierających dane inne niż tekstowe, takie jak informacje skompresowane lub protokoły binarne.

