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 - 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.

