
Jak używać skanerów kodów kreskowych w aplikacjach Windows C#
W tym samouczku pokażemy, jak skanować kody QR i kody kreskowe w aplikacjach konsolowych C# oraz aplikacjach .NET Windows Forms, na przykładzie biblioteki IronBarcode.
Korzystając z biblioteki IronBarcode, można skanować i odczytywać wiele kodów kreskowych jednocześnie, a także z powodzeniem skanować niedoskonałe obrazy. Najpierw wyjaśnijmy, czym jest skaner BarCode.
Czym jest skaner BarCode?
BarCode to kwadratowy lub prostokątny obraz składający się z serii równoległych czarnych linii i białych przestrzeni o różnej szerokości. Skaner kodów kreskowych lub czytnik kodów kreskowych to urządzenie, które może odczytywać wydrukowane kody kreskowe, dekodować dane zawarte w kodzie kreskowym i wysyłać je do komputera.
Poniższe kroki przedstawiają, jak stworzyć skaner kodów kreskowych przy pomocy biblioteki IronBarcode.
Jak odczytywać BarCodes w języku C#
- Utwórz projekt aplikacji .NET Windows Forms w programie Microsoft Visual Studio
- Zainstaluj bibliotekę BarCode
- Odczytuj dowolny kod kreskowy lub kod QR
- Odczyt wielu BarCodes lub kodów QR podczas jednego skanowania
- Umożliw IronBarcode odczytywanie danych z niedoskonałych skanów i zdjęć
1. Utwórz aplikację Windows Forms w programie Microsoft Visual Studio
Otwórz Visual Studio > kliknij Utwórz nowy projekt > wybierz szablon aplikacji Windows Forms > naciśnij Dalej > nadaj nazwę projektowi > naciśnij Dalej > wybierz docelową platformę .NET Framework > kliknij przycisk Utwórz.
Po utworzeniu projektu zaprojektuj formularz w następujący sposób, korzystając z zestawu narzędzi Visual Studio: kontrolki PictureBox, Label, TextBox i Button.
Skaner BarCode
2. Zainstaluj bibliotekę BarCode .NET w języku C#
Bibliotekę BarCode Library można zainstalować, korzystając z jednej z trzech poniższych metod:
1. Konsola menedżera pakietów
Wpisz następujące polecenie w konsoli menedżera pakietów. Pobierze i zainstaluje pakiet za Ciebie.
2. Rozwiązanie NuGet Packages Manager
Bibliotekę BarCode Library można również zainstalować za pomocą rozwiązania NuGet Package. Wystarczy wykonać następujące kroki:
Kliknij Narzędzia > Menedżer pakietów NuGet > Zarządzaj pakietami NuGet dla rozwiązania.
Spowoduje to otwarcie menedżera pakietów NuGet. Kliknij przycisk Przeglądaj i wyszukaj BarCode, a następnie zainstaluj bibliotekę klas.
3. Pobierz z linku
Alternatywnie można pobrać plik IronBarCode.Dll i dodać go do projektu jako odwołanie.
Po pobraniu dodaj następujące odniesienia do swojego projektu czytnika BarCode.
using IronBarCode;Imports IronBarCode3. Odczytuj dowolny BarCode lub kod QR
Odczytanie kodu kreskowego lub kodu QR w środowisku .NET jest niezwykle łatwe dzięki bibliotece IronBarcode z czytnikiem kodów kreskowych .NET.
Skaner BarCode
W swoim projekcie wyszukaj obraz, który chcesz odczytać. To otworzy się w PictureBox; Teraz kliknij "zeskanuj kod". Tekst pojawi się w polu tekstowym.
Oto kod przycisku "przeglądaj" służącego do otwierania obrazu:
// Open file dialog
OpenFileDialog open = new OpenFileDialog();
// Image filters
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {
// Display image in PictureBox
pictureBox1.Image = new Bitmap(open.FileName);
// Store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName;
}' Open file dialog
Dim open As New OpenFileDialog()
' Image filters
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp"
If open.ShowDialog() = DialogResult.OK Then
' Display image in PictureBox
pictureBox1.Image = New Bitmap(open.FileName)
' Store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName
End IfKod przycisku "scan code":
// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;' Read the barcode from the image file path
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName)
' Display the decoded text in TextBox
textBox1.Text = Result.TextSkaner BarCode wyświetla dane BarCode w polu tekstowym w następujący sposób:
BarCode Image to be Scanned with C#
Skaner kodów QR
W tej sekcji biblioteka IronBarcode skutecznie radzi sobie z rzeczywistymi sytuacjami związanymi z przekrzywionymi kodami QR. Chociaż QR kod pod kątem może być obsługiwany i odczytany przez metodę Read, może jednak zająć więcej czasu na rozwiązanie. Biblioteka IronBarcode zapewnia dostosowany sposób użycia BarcodeReaderOptions jako dodatkowego parametru do obsługi takiego wejścia obrazkowego. Kod wygląda następująco:
// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};
// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;' Define a collection of image filters to apply
Dim filtersToApply = New ImageFilterCollection() From {
New SharpenFilter(),
New InvertFilter(),
New ContrastFilter(),
New BrightnessFilter(),
New AdaptiveThresholdFilter(),
New BinaryThresholdFilter()
}
' Configure barcode reader options with specified filters
Dim myOptionsExample As New BarcodeReaderOptions() With {
.ImageFilters = filtersToApply,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}
' Read the barcode/QR code with custom options and display result
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName, myOptionsExample)
textBox1.Text = Result.TextPo otwarciu przekrzywionego obrazu kodu QR wynik będzie wyglądał następująco:
Przekrzywiony obraz kodu QR
Odczytywanie wielu BarCodes podczas jednego skanowania
Dokumenty PDF
Obrazy BarCode można skanować z pliku PDF, a każdy wynik można wyświetlić w odpowiedni sposób zgodnie z potrzebami. Poniższy przykładowy kod umożliwia odczytanie wielu BarCodes z pliku PDF.
// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results found
foreach (var PageResult in PDFResults) {
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);
}' Scan for multiple barcodes within a PDF document
Dim PDFResults() As BarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results found
For Each PageResult In PDFResults
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 PageResultBarCode i kody QR obecne w plikach PDF:
C# - Odczytywanie BarCode'ów z pliku PDF
Odczytywanie BarCodes z niedoskonałych obrazów
W rzeczywistych przypadkach użycia BARCODE często występują z niedoskonałościami na obrazach, skanach, miniaturach lub fotografiach i mogą zawierać szumy cyfrowe lub być przekrzywione. W tej sekcji pokazano, jak odczytywać dane z BarCodes z miniatur.
Miniatury
Biblioteka IronBarcode korzysta z generatora kodów kreskowych C#, który jest w stanie odczytać nawet uszkodzoną miniaturę kodu kreskowego.
Automatyczna korekcja rozmiaru miniatur BarCode. Plik odczytywany za pomocą IronBarcode w języku C#
Automatycznie wykrywa obrazy BarCode, które są zbyt małe, aby w rozsądny sposób przedstawiać rzeczywisty BarCode, a następnie powiększa i usuwa wszystkie cyfrowe zakłócenia związane z tworzeniem miniatur, dzięki czemu stają się one ponownie czytelne.
// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");' Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
Dim SmallResult As BarcodeResult = BarcodeReader.Read("ThumbnailOfBarcode.gif")Podsumowanie
IronBarcode to wszechstronna biblioteka oprogramowania .NET i generator kodów QR w języku C#, służąca do skanowania i odczytywania szerokiej gamy formatów obrazów kodów kreskowych. Działa ona niezależnie od tego, czy kody kreskowe są idealnymi zrzutami ekranu, czy też w rzeczywistości są to zdjęcia, skany lub inne niedoskonałe obrazy z rzeczywistego świata. Ponadto IronBarcode oferuje szeroki zakres opcji dostosowywania w celu poprawy szybkości odczytu kodów kreskowych, takich jak obszary przycinania lub wielowątkowość, oraz dokładności modelu ML. Więcej informacji na temat IronBarcode można znaleźć na oficjalnej stronie dokumentacji.
Obecnie, kupując kompletny pakiet Iron Suite, można otrzymać pięć bibliotek w cenie zaledwie dwóch.

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.
Powiązane artykuły


