UTILISATION D'IRONBARCODE

Comment lire un code-barres à partir d'un appareil photo dans VB .NET

Jordi Bardia
Jordi Bardia
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 vise à fournir un tutoriel complet sur la lecture de codes-barres en utilisant une caméra dans Visual Basic en utilisant la bibliothèque IronBarcode de Iron 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

  1. Créer un nouveau projet VB.NET dans Visual Studio

  2. Installez la bibliothèque IronBarcode et appliquez-la à votre projet

  3. Récupérer le code-barres de l'appareil photo sous forme d'image dans la bibliothèque Aforge

  4. Décoder l'image du code-barres à l'aide d'IronBarcode

Conditions préalables

  1. Visual Studio : Assurez-vous d'avoir Visual Studio ou tout autre environnement de développement VB.NET installé.

  2. Caméra compatible : Assurez-vous que la caméra en question est connectée à votre appareil

  3. Gestionnaire de Paquets NuGet : Assurez-vous de pouvoir utiliser NuGet pour gérer les paquets dans votre projet

Étape 1 : Créer un nouveau projet Visual Basic .NET dans Visual Studio

Créez une nouvelle application de formulaire Windows VB.NET (ou utilisez un projet existant) où vous souhaitez héberger le code pour lire le code-barres depuis votre caméra.

Comment lire un code-barres depuis une caméra en VB .NET : Figure 1 - Créer une nouvelle application de formulaire Windows VB.NET

Dans l'étape suivante, vous pouvez indiquer les noms de la solution et du projet.

Comment lire un code-barres depuis une caméra en VB .NET : Figure 2 - Configuration du projet avec le nom et la solution

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 en utilisant la console du gestionnaire de packages NuGet :

Install-Package BarCode

Comment lire un code-barres à partir de la caméra en VB .NET : Figure 3 - Installation du package NuGet IronBarcode

Le paquet NuGet peut également être installé à l'aide du gestionnaire de paquets NuGet de Visual Studio, comme indiqué ci-dessous.

Comment lire un code-barres depuis une caméra en VB .NET : Figure 4 - Installation de IronBarcode via le gestionnaire de packages de Visual Studio

É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

Comment lire un code-barres depuis une caméra en VB .NET : Figure 5 - Packages de la bibliothèque AForge qui se trouvent dans le gestionnaire de packages de Visual Studio

L'étape suivante consiste à ajouter le contrôle PictureBox de ToolBox aux formulaires. Il est utilisé pour capturer l'image de l'appareil photo.

Comment lire un code-barres depuis la caméra en VB .NET : Figure 6 - Ajouter le contrôle PictureBox

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.

{
    "IronBarcode.LicenseKey":"MYLICENSE.KEY.TRIAL"
}

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.

Comment lire un code-barres depuis une caméra en VB .NET : Figure 7 - Fenêtre contextuelle après avoir soumis un formulaire d'essai avec succès

Conclusion

La mise en œuvre de la lecture de codes-barres à partir d'une caméra en VB.NET est une fonctionnalité puissante qui peut améliorer diverses applications dans différents secteurs. En tirant parti de bibliothèques comme IronBarcode et en les intégrant dans votre projet VB.NET, vous pouvez créer des applications de numérisation de codes-barres efficaces et fiables qui répondent aux exigences du monde technologique d'aujourd'hui. 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 Bardia
Ingénieur logiciel
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#