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
Comment lire un code-barres à partir d'un appareil photo dans VB .NET
Publié mars 6, 2024
Partager:
Dans le paysage technologique en évolution rapide, les lecteurs de codes-barres font désormais partie intégrante de divers secteurs, allant de la vente au détail et de la logistique aux soins de santé et à la fabrication. Visual Basic .NET de Microsoft, un langage de programmation polyvalent et puissant, fournit aux développeurs un cadre robuste pour créer des applications capables de lire des codes-barres directement à partir d'une caméra. Cet article a pour but de fournir un tutoriel complet sur le lecteur de codes-barres utilisant une caméra en Visual Basic à l'aide de la fonctionIronBarcode bibliothèque deIron Software
La bibliothèque IronBarcode vous permet de lire des fichiers d'images de codes-barres et également lorsqu'ils sont transmis par des caméras. Il permet également de lire les codes-barres d'un document PDF. Capable de scanner un maximum d'un code-barres à la fois. Le type de code-barres doit être spécifié au moment de la lecture de l'image du code-barres dans le SDK du lecteur de codes-barres VB.NET.
Comment lire un code-barres à partir d'un appareil photo dans VB .NET
Créer un nouveau projet VB.NET dans Visual Studio
Installez la bibliothèque IronBarcode et appliquez-la à votre projet
Récupérer le code-barres de l'appareil photo sous forme d'image dans la bibliothèque Aforge
Décoder l'image du code-barres à l'aide d'IronBarcode
Conditions préalables
Visual Studio: Assurez-vous que Visual Studio ou tout autre environnement de développement VB.NET est installé.
Appareil photo compatible: Assurez-vous que l'appareil photo en question est connecté à votre appareil
NuGet Package Manager: Assurez-vous que vous pouvez utiliser NuGet pour gérer les paquets dans votre projet
Étape 1 : Créer un nouveau projet Visual Basic .NET dans Visual Studio
Créer une nouvelle application Windows form VB.NET(ou utiliser un projet existant) où vous souhaitez héberger le code pour lire le code-barres à partir de votre appareil photo.
Dans l'étape suivante, vous pouvez indiquer les noms de la solution et du projet.
Sélectionnez la version .NET et cliquez sur le bouton "Créer".
Étape 2 : Installer la bibliothèque IronBarcode
Ouvrez votre projet C# et installez la bibliothèque IronBarcode à l'aide de la commandeNuGet Console du gestionnaire de paquets :
Install-Package BarCode
Le paquet NuGet peut également être installé à l'aide du gestionnaire de paquets NuGet de Visual Studio, comme indiqué ci-dessous.
Étape 3 : Lecture du code-barres à partir de l'appareil photo
Pour scanner le flux et capturer l'image de la caméra, nous avons besoin de la bibliothèque AForge. Installez-le comme suit à partir du gestionnaire de paquets NuGet
L'étape suivante consiste à ajouter le contrôle PictureBox de ToolBox aux formulaires. Il est utilisé pour capturer l'image de l'appareil photo.
Copiez ensuite le code ci-dessous dans l'application de formulaires et créez le composant de lecture de codes-barres VB .NET à partir d'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
Dans cet exemple de code, nous l'avons configuré pour lire le code QR, la matrice de données et les images de code-barres avec le type de code-barres code 128. Tout d'abord, nous utilisons PictureBox pour capturer des images de codes-barres à partir d'une webcam ou de n'importe quel appareil photo en scannant le code-barres. Nous créons ensuite une image bitmap. Cette dernière est ensuite fournie comme entrée à la classe IronBarcode BarcodeReader. Cette application lit les codes-barres 2D à partir d'images et les décode. Si un résultat positif est obtenu après le décodage, le résultat est affiché dans la boîte à messages.
Licence (essai gratuit disponible)
IronBarcode. Cette clé doit être placée dans appsettings.json.
Fournissez l'adresse e-mail de l'utilisateur pour obtenir une licence d'essai et après avoir soumis l'adresse e-mail, la clé sera envoyée par e-mail.
Conclusion
Mise en œuvre de la lecture de codes-barres à partir d'un appareil photo dansVB.NET est une fonction puissante qui peut améliorer diverses applications dans différents secteurs. En s'appuyant sur des bibliothèques telles queIronBarcode et en les intégrant dans votre projet VB.NET, vous pouvez créer des applications de lecture de codes-barres efficaces et fiables qui répondent aux exigences du monde actuel axé sur la technologie. Ce guide sert de point de départ, et les développeurs peuvent personnaliser et optimiser la solution en fonction de leurs besoins spécifiques, des types de codes-barres et des cas d'utilisation.
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT Comment utiliser le code-barres 2D dans VB .NET
SUIVANT > Comment générer un code-barres de type Code 128 en C#
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier