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
Wie man einen Barcode von einer Kamera in VB .NET liest
Veröffentlicht 6. März 2024
Teilen Sie:
In der sich rasch entwickelnden Technologielandschaft sind Barcode-Scanner zu einem festen Bestandteil verschiedener Branchen geworden, vom Einzelhandel und der Logistik bis hin zum Gesundheitswesen und der Fertigung. Visual Basic .NET von Microsoft, eine vielseitige und leistungsstarke Programmiersprache, bietet Entwicklern ein robustes Framework für die Erstellung von Anwendungen, die Barcodes direkt von einer Kamera einlesen können. Dieser Artikel zielt darauf ab, ein umfassendes Barcode-Leser-Tutorial mit einer Kamera in Visual Basic unter Verwendung derIronBarcode bibliothek vonIron Software
Mit der IronBarcode-Bibliothek können Sie Barcode-Bilddateien lesen, auch wenn sie von Kameras gestreamt werden. Es unterstützt auch das Lesen von Barcodes aus einem PDF-Dokument. Kann maximal einen Barcode auf einmal einlesen. Der Barcodetyp muss zum Zeitpunkt des Lesens des Barcodebildes im VB.NET Barcode Reader SDK angegeben werden.
Wie man einen Barcode von einer Kamera in VB .NET liest
Erstellen eines neuen VB.NET-Projekts in Visual Studio
Installieren Sie die IronBarcode Library und wenden Sie sie auf Ihr Projekt an
Holen Sie sich den Barcode von der Kamera als Bild aus der Aforge-Bibliothek
Dekodieren Sie das Barcodebild mit IronBarcode
Voraussetzungen
Visual Studio: Stellen Sie sicher, dass Sie Visual Studio oder eine andere VB.NET-Entwicklungsumgebung installiert haben.
Kompatible Kamera: Stellen Sie sicher, dass die besagte Kamera an Ihr Gerät angeschlossen ist
NuGet Package Manager: Stellen Sie sicher, dass Sie NuGet verwenden können, um Pakete in Ihrem Projekt zu verwalten
Schritt 1: Erstellen eines neuen Visual Basic .NET-Projekts in Visual Studio
Erstellen einer neuen VB.NET-Windows-Formularanwendung(oder ein bestehendes Projekt verwenden) wo Sie den Code zum Lesen des Strichcodes von Ihrer Kamera unterbringen möchten.
Im nächsten Schritt können Sie die Lösung und die Projektnamen angeben.
Wählen Sie die .NET-Version aus und klicken Sie auf die Schaltfläche "Erstellen".
Schritt 2: Installieren Sie die IronBarcode-Bibliothek
Öffnen Sie Ihr C#-Projekt und installieren Sie die IronBarcode-Bibliothek mit dem Befehl*NuGet Paketmanager-Konsole:
Install-Package BarCode
Das NuGet-Paket kann auch mit dem NuGet-Paketmanager von Visual Studio installiert werden, wie unten gezeigt.
Schritt 3: Lesen des Barcodes von der Kamera
Um den Feed zu scannen und das Bild von der Kamera zu erfassen, benötigen wir die AForge Library. Installieren Sie es wie folgt über den NuGet-Paketmanager
Der nächste Schritt besteht darin, das PictureBox-Steuerelement aus der ToolBox zu den Formularen hinzuzufügen. Damit wird das Bild von der Kamera aufgenommen.
Dann kopieren Sie den untenstehenden Code in die Formularanwendung und erstellen Sie die VB .NET Barcode-Lesekomponente von IronBarcode.
Imports IronBarCode
Imports AForge.Video
Imports AForge.Video.DirectShow
Public Class Form1
Private videoDevices As FilterInfoCollection
Private videoSource As VideoCaptureDevice
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
videoDevices = New FilterInfoCollection(FilterCategory.VideoInputDevice)
If videoDevices.Count > 0 Then
videoSource = New VideoCaptureDevice(videoDevices(0).MonikerString)
AddHandler videoSource.NewFrame, AddressOf VideoSource_NewFrame
videoSource.Start()
Else
MessageBox.Show("No video devices found.")
Close()
End If
End Sub
Private Sub VideoSource_NewFrame(sender As Object, eventArgs As NewFrameEventArgs)
pictureBoxCamera.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
' Process each frame for barcode recognition
Dim image = DirectCast(pictureBoxCamera.Image, Bitmap)
Dim result = BarcodeReader.QuicklyReadOneBarcode(image, BarcodeEncoding.QRCode Or BarcodeEncoding.Code128)
If result IsNot Nothing Then
' Barcode found, handle the new result (e.g., display the barcode value)
Dim barcodeValue As String = result.Text
ShowBarcodeResult(barcodeValue)
End If
End Sub
Private Sub ShowBarcodeResult(barcodeValue As String)
' Invoke on UI thread to update UI controls
If InvokeRequired Then
Invoke(New Action(Of String)(AddressOf ShowBarcodeResult), barcodeValue)
Else
' Display the barcode font value in a MessageBox or any other UI element
MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
End If
End Sub
Private Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
videoSource.SignalToStop()
videoSource.WaitForStop()
End If
End Sub
End Class
Imports IronBarCode
Imports AForge.Video
Imports AForge.Video.DirectShow
Public Class Form1
Private videoDevices As FilterInfoCollection
Private videoSource As VideoCaptureDevice
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
videoDevices = New FilterInfoCollection(FilterCategory.VideoInputDevice)
If videoDevices.Count > 0 Then
videoSource = New VideoCaptureDevice(videoDevices(0).MonikerString)
AddHandler videoSource.NewFrame, AddressOf VideoSource_NewFrame
videoSource.Start()
Else
MessageBox.Show("No video devices found.")
Close()
End If
End Sub
Private Sub VideoSource_NewFrame(sender As Object, eventArgs As NewFrameEventArgs)
pictureBoxCamera.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
' Process each frame for barcode recognition
Dim image = DirectCast(pictureBoxCamera.Image, Bitmap)
Dim result = BarcodeReader.QuicklyReadOneBarcode(image, BarcodeEncoding.QRCode Or BarcodeEncoding.Code128)
If result IsNot Nothing Then
' Barcode found, handle the new result (e.g., display the barcode value)
Dim barcodeValue As String = result.Text
ShowBarcodeResult(barcodeValue)
End If
End Sub
Private Sub ShowBarcodeResult(barcodeValue As String)
' Invoke on UI thread to update UI controls
If InvokeRequired Then
Invoke(New Action(Of String)(AddressOf ShowBarcodeResult), barcodeValue)
Else
' Display the barcode font value in a MessageBox or any other UI element
MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
End If
End Sub
Private Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
videoSource.SignalToStop()
videoSource.WaitForStop()
End If
End Sub
End Class
VB.NET
In diesem Beispielcode haben wir ihn so konfiguriert, dass er QR-Codes, Data-Matrix- und Barcode-Bilder mit dem Barcodetyp Code 128 liest. Zunächst verwenden wir PictureBox, um Barcode-Bilder von einer Webcam oder einem beliebigen Kameragerät durch Scannen des Barcodes zu erfassen. Dann erstellen wir ein Bitmap-Bild. Diese wird dann als Eingabe für die IronBarcode BarcodeReader-Klasse bereitgestellt. Diese Anwendung liest den 2D-Barcode aus Bildern und dekodiert ihn. Wenn nach der Dekodierung ein positives Ergebnis erzielt wird, wird das Ergebnis im Meldungsfenster angezeigt.
Lizenzierung (kostenlose Testversion verfügbar)
IronBarcode. Dieser Schlüssel muss in appsettings.json platziert werden.
Geben Sie die E-Mail-ID des Benutzers an, um eine Testlizenz zu erhalten, und nachdem Sie die E-Mail-ID übermittelt haben, wird der Schlüssel per E-Mail zugestellt.
Schlussfolgerung
Implementierung des Barcodelesens von einer Kamera inVB.NET ist eine leistungsstarke Funktion, die verschiedene Anwendungen in unterschiedlichen Branchen verbessern kann. Durch den Einsatz von Bibliotheken wieIronBarcode und deren Integration in Ihr VB.NET-Projekt können Sie effiziente und zuverlässige Barcode-Scan-Anwendungen erstellen, die den Anforderungen der heutigen technologiegetriebenen Welt gerecht werden. Dieser Leitfaden dient als Ausgangspunkt, und Entwickler können die Lösung auf der Grundlage ihrer spezifischen Anforderungen, Barcodetypen und Anwendungsfälle weiter anpassen und optimieren.
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.