UTILISATION D'IRONBARCODE

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 fonction IronBarcode bibliothèque 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 que Visual Studio ou tout autre environnement de développement VB.NET est installé.

  2. Appareil photo compatible: Assurez-vous que l'appareil photo en question est connecté à votre appareil

  3. 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.

Comment lire un code-barres à partir d'un appareil photo dans VB .NET : Figure 1 - Création d'une nouvelle application Windows form en VB.NET

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

Comment lire un code-barres à partir d'un appareil photo dans 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 à l'aide de la commande NuGet Console du gestionnaire de paquets :

Install-Package BarCode

Comment lire un code-barres à partir d'un appareil photo 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 à partir d'un appareil photo en VB .NET : Figure 4 - Installation d'IronBarcode via le gestionnaire de paquets 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 à partir d'un appareil photo en VB .NET : Figure 5 - Paquets de bibliothèques AForge trouvés dans le gestionnaire de paquets 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 à partir d'un appareil photo dans VB .NET : Figure 6 - Ajout du 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 à partir d'un appareil photo dans VB .NET : Figure 7 - Popup après avoir soumis avec succès un formulaire d'essai

Conclusion

Mise en œuvre de la lecture de codes-barres à partir d'un appareil photo dans VB.NET est une fonction puissante qui peut améliorer diverses applications dans différents secteurs. En s'appuyant sur des bibliothèques telles que IronBarcode 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.

< 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#