using IronBarCode;
using System.Drawing;
// Reading a barcode is easy with IronBarcode!
var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file
var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap
var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image
var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf
// To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
var myOptionsExample = new BarcodeReaderOptions
{
// Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more detail is set
Speed = ReadingSpeed.Balanced,
// Reader will stop scanning once a single barcode is found (if set to true)
ExpectMultipleBarcodes = true,
// By default, all barcode formats are scanned for
// Specifying a subset of barcode types to search for would improve performance
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
// Utilize multiple threads to read barcodes from multiple images in parallel
Multithreaded = true,
// Maximum threads for parallelized barcode reading
// Default is 4
MaxParallelThreads = 2,
// The area of each image frame in which to scan for barcodes
// Specifying a crop area will significantly improve performance and avoid noisy parts of the image
CropArea = new Rectangle(),
// Special setting for Code39 barcodes
// If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
UseCode39ExtendedMode = true
};
// Read with the options applied
var results = BarcodeReader.Read("barcode.png", myOptionsExample);
// Create a barcode with one line of code
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100);
// Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg");
Image myBarcodeImage = myBarcode.Image; // Can be used as Image
Bitmap myBarcodeBitmap = myBarcode.ToBitmap(); // Can be used as Bitmap
Verwendung von Barcode-Scannern in C# Windows-Anwendungen
IRONBARCODE VERWENDEN
Wie man Barcode-Scanner in C# Windows Apps verwendet
Aktualisiert 20. Januar 2024
Teilen Sie:
In diesem Tutorial wird gezeigt, wie man QR-Codes und Barcodes in C#-Konsolenanwendungen und .NET-Windows-Forms-Anwendungen scannt, wobei die IronBarcode-Bibliothek als Beispiel dient.
Mit der IronBarcode-Bibliothek können mehrere Barcodes gleichzeitig gescannt und gelesen werden, und es können auch unvollkommene Bilder erfolgreich gescannt werden. Lassen Sie uns zunächst klären, was ein Barcode-Scanner ist.
Was ist ein Barcode-Scanner?
Ein Barcode ist ein quadratisches oder rechteckiges Bild, das aus einer Reihe von parallelen schwarzen Linien und weißen Zwischenräumen unterschiedlicher Breite besteht. Ein Barcode-Scanner oder Barcode-Leser ist ein Gerät, das gedruckte Barcodes lesen, die im Barcode enthaltenen Daten entschlüsseln und an einen Computer senden kann.
Die folgenden Schritte zeigen Ihnen, wie Sie einen Barcode-Scanner mit Hilfe der IronBarcode Library erstellen können.
Wie man Barcodes in C# liest;
Erstellen eines .NET Windows Forms-Anwendungsprojekts in Microsoft Visual Studio
Installieren Sie die Barcode-Bibliothek
Lesen Sie jeden Barcode oder QR-Code
Lesen Sie mehrere Barcodes oder QR-Codes mit einem einzigen Scanvorgang
Ermöglichen Sie IronBarcode das Lesen von unvollkommenen Scans und Fotos
1. Erstellen einer Windows Forms-Anwendung in Microsoft Visual Studio
Öffnen Sie Visual Studio > Klicken Sie auf Neues Projekt erstellen > Wählen Sie Windows Forms-Anwendungsvorlage > Drücken Sie Weiter > Benennen Sie das Projekt > Drücken Sie Weiter > Wählen Sie Ihr .NET-Framework als Ziel aus > Klicken Sie auf die Schaltfläche Erstellen.
Nachdem Sie das Projekt erstellt haben, entwerfen Sie das Formular wie folgt in der Visual Studio Toolbox: PictureBox-, Label-, TextBox- und Button-Steuerelemente.
Barcode-Scanner
2. Installieren Sie die Barcode .NET Bibliothek in C#;
Die Barcode-Bibliothek kann auf eine der folgenden drei Arten installiert werden:
1. Paketmanager-Konsole
Schreiben Sie den folgenden Befehl in die Paketmanager-Konsole. Es wird das Paket für Sie herunterladen und installieren.
Install-Package BarCode
2. NuGet Packages Manager Lösung
Sie können die Barcode Library auch mit Hilfe der NuGet Package Solution installieren. Folgen Sie einfach diesen Schritten:
Klicken Sie auf Tools > NuGet Package Manager > NuGet-Pakete für die Lösung verwalten.
Dadurch wird der NuGet Package Manager für Sie geöffnet. Klicken Sie auf Durchsuchen und suchen Sie nach Barcode, dann installieren Sie die Klassenbibliothek.
3. Download über den Link
Als Alternative kann dieIronBarCode.Dll kann heruntergeladen und Ihrem Projekt als Referenz hinzugefügt werden.
Fügen Sie nach dem Herunterladen die folgenden Referenzen zu Ihrem Barcode-Leseprojekt hinzu.
using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText $csharpLabel
3. Lesen Sie jeden Barcode oder QR-Code
Das Lesen eines Barcodes oder QR-Codes in .NET ist mit der IronBarcode-Bibliothek unglaublich einfach.NET Barcode-Leser.
Barcode-Scanner
Suchen Sie in Ihrem Projekt nach dem Bild, das Sie lesen möchten. Es wird in der PictureBox geöffnet; klicken Sie nun auf "Code scannen". Der Text wird im Textfeld angezeigt.
Hier ist der Code für die Schaltfläche "Durchsuchen" zum Öffnen eines Bildes:
// 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 picture box
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
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 picture box
pictureBox1.Image = new Bitmap(open.FileName);
// store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Der Code für die Schaltfläche "Code scannen":
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
textBox1.Text = Result.Text;
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
textBox1.Text = Result.Text;
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName)
textBox1.Text = Result.Text
$vbLabelText $csharpLabel
Der Barcodescanner zeigt die Barcodedaten im Textfeld wie folgt an:
Barcode-Bild mit C# scannen
QR-Code-Scanner
In diesem Abschnitt wird gezeigt, wie die IronBarcode Library in der Praxis mit schiefen QR-Codes umgeht. Obwohl der schiefwinklige QR-Code von der Software verarbeitet und gelesen werden kannlesen methode kann es dennoch mehr Zeit in Anspruch nehmen, sie zu lösen. Die IronBarcode-Bibliothek bietet eine angepasste Möglichkeit zur Verwendung vonbarcodeLeserOptionen als zusätzlichen Parameter, um mit solchen Bildeingaben umzugehen. Der Code lautet wie folgt:
// Choose which filters are to be applied (in order);
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
// Set chosen filters in BarcodeReaderOptions:
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode
BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
// Choose which filters are to be applied (in order);
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
// Set chosen filters in BarcodeReaderOptions:
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode
BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Nach dem Öffnen des schiefen QR-Code-Bildes wird die Ausgabe wie folgt aussehen:
Schiefes QrCode-Bild
Lesen mehrerer Barcodes in einem einzigen Scanvorgang
PDF-Dokumente
Barcode-Bilder können aus einer PDF-Datei gescannt werden und jedes Ergebnis kann nach Wunsch angezeigt werden. Mit dem folgenden Beispielcode können Sie mehrere Barcodes aus einer PDF-Datei lesen.
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
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);
}
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
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);
}
' Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input
Dim PDFResults() As imagePagedBarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results
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 PageResult
$vbLabelText $csharpLabel
Barcode und QR-Code in PDF-Dateien:
**C# - Lesen von Barcodes aus einem PDF-Ergebnis
Lesen von Barcodes aus unvollkommenen Bildern
In der Praxis werden Barcodes oft mit Mängeln in Bildern, Scans, Miniaturansichten oder Fotos gefunden und können digitales Rauschen enthalten oder verzerrt sein. In diesem Abschnitt wird gezeigt, wie Sie Barcode-Daten aus Miniaturansichten lesen können.
Vorschaubilder
Die IronBarcode Library verwendet dieC# Barcode Generatordas sogar in der Lage ist, ein beschädigtes Miniaturbild eines Strichcodes zu lesen.
Automatische Korrektur der Barcode-Miniaturbildgröße. Datei lesbar mit IronBarcode in C#
Es erkennt automatisch Strichcode-Bilder, die zu klein sind, um einen echten Strichcode vernünftig darzustellen, und skaliert und bereinigt dann das gesamte digitale Rauschen, das mit dem Thumbnail verbunden ist, so dass sie wieder lesbar werden.
// 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.
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")
Regan schloss sein Studium an der University of Reading mit einem BA in Elektrotechnik ab. Bevor er zu Iron Software kam, konzentrierte er sich in seinen früheren Jobs auf einzelne Aufgaben. Was ihm bei Iron Software am meisten Spaß macht, ist das Spektrum der Aufgaben, die er übernehmen kann, sei es im Vertrieb, im technischen Support, in der Produktentwicklung oder im Marketing. Es macht ihm Spaß, die Art und Weise zu verstehen, wie Entwickler die Bibliothek von Iron Software nutzen, und dieses Wissen zu nutzen, um die Dokumentation und die Produkte kontinuierlich zu verbessern.