Przejdź do treści stopki
KORZYSTANIE Z IRONBARCODE

Jak odczytać kod kreskowy z kamery w VB .NET

W szybko zmieniającym się świecie technologii skanery BARCODE stały się integralną częścią różnych branż, od handlu detalicznego i logistyki po opiekę zdrowotną i produkcję. Visual Basic .NET firmy Microsoft, wszechstronny i potężny język programowania, zapewnia programistom solidną platformę do tworzenia aplikacji, które mogą odczytywać BarCodes bezpośrednio z obrazu z kamery. Celem tego artykułu jest przedstawienie kompleksowego samouczka dotyczącego odczytu kodów kreskowych za pomocą kamery w języku Visual Basic przy użyciu biblioteki IronBarcode firmy Iron Software.

Biblioteka IronBarcode umożliwia odczytywanie plików graficznych z kodami kreskowymi, a także danych przesyłanych strumieniowo z kamer. Obsługuje również odczytywanie BARCODE-ów z dokumentów PDF. Może skanować maksymalnie jeden kod kreskowy na raz. Typ kodu kreskowego należy określić w momencie odczytu obrazu kodu kreskowego w pakiecie SDK czytnika kodów kreskowych VB.NET.

Jak odczytać BarCode z kamery w VB .NET

  1. Utwórz nowy projekt VB.NET w Visual Studio
  2. Zainstaluj bibliotekę IronBarcode i zastosuj ją w swoim projekcie
  3. Pobierz kod kreskowy z aparatu jako obraz przy użyciu biblioteki AForge
  4. Odkoduj obraz kodu kreskowego za pomocą IronBarcode

Wymagania wstępne

  1. Visual Studio: Upewnij się, że masz zainstalowane Visual Studio lub inne środowisko programistyczne VB.NET.
  2. Kompatybilny aparat: Upewnij się, że aparat jest podłączony do urządzenia.
  3. Menedżer pakietów NuGet: Upewnij się, że możesz używać NuGet do zarządzania pakietami w swoim projekcie.

Krok 1: Utwórz nowy projekt Visual Basic .NET w Visual Studio

Utwórz nową aplikację VB.NET Windows Forms (lub użyj istniejącego projektu), w której chcesz umieścić kod do odczytu BARCODE z aparatu.

Jak odczytać kod kreskowy z kamery w VB .NET: Figura 1 - Stwórz nową aplikację formularzy Windows w VB.NET

W kolejnym kroku możesz podać nazwy rozwiązań i projektów.

Jak odczytać kod kreskowy z kamery w VB .NET: Figura 2 - Konfiguracja projektu z nazwą i rozwiązaniem

Wybierz wersję .NET i kliknij przycisk "Utwórz".

Krok 2: Zainstaluj bibliotekę IronBarcode

Otwórz projekt VB.NET i zainstaluj bibliotekę IronBarcode za pomocą konsoli NuGet Package Manager:

Install-Package BarCode

Jak odczytać kod kreskowy z kamery w VB .NET: Figura 3 - Instalowanie pakietu NuGet IronBarcode

Pakiet NuGet można również zainstalować za pomocą menedżera pakietów NuGet w programie Visual Studio, jak pokazano poniżej.

Jak odczytać kod kreskowy z kamery w VB .NET: Figura 4 - Instalacja IronBarcode poprzez Menedżera Pakietów Visual Studio

Krok 3: Odczytanie BarCODE z kamery

Aby zeskanować kanał i przechwycić obraz z kamery, potrzebujemy biblioteki AForge. Zainstaluj go zgodnie z poniższą instrukcją za pomocą menedżera pakietów NuGet.

Jak odczytać kod kreskowy z kamery w VB .NET: Figura 5 - Pakiety biblioteki AForge znalezione w Menedżerze Pakietów Visual Studio

Kolejnym krokiem jest dodanie kontrolki PictureBox z ToolBox do formularzy. Służy to do przechwytywania obrazu z kamery.

Jak odczytać kod kreskowy z kamery w VB .NET: Figura 6 - Dodanie kontrolki PictureBox

Następnie skopiuj poniższy kod do aplikacji formularzy i utwórz komponent czytnika kodów kreskowych VB .NET z biblioteki IronBarcode.

Imports IronBarCode
Imports AForge.Video
Imports AForge.Video.DirectShow

Public Class Form1
    Private videoDevices As FilterInfoCollection
    Private videoSource As VideoCaptureDevice

    ' Event handler for form load
    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

    ' Event handler for capturing and processing new frame from the video source
    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

    ' Method to display the barcode result
    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 value in a MessageBox or any other UI element
            MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
        End If
    End Sub

    ' Event handler for form closing
    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

    ' Event handler for form load
    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

    ' Event handler for capturing and processing new frame from the video source
    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

    ' Method to display the barcode result
    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 value in a MessageBox or any other UI element
            MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
        End If
    End Sub

    ' Event handler for form closing
    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

W tym przykładowym kodzie skonfigurowaliśmy go do odczytu kodów QR i BarCODE-ów Code 128. Najpierw używamy PictureBox do przechwytywania obrazów BarCode z kamery internetowej lub dowolnego urządzenia fotograficznego poprzez skanowanie BarCode. Następnie tworzymy obraz bitmapowy, który jest następnie podany jako wejście do klasy IronBarcode BarcodeReader. Ta aplikacja odczytuje kody kreskowe 2D z obrazów i je dekoduje. Jeśli po dekodowaniu uzyskany zostanie wynik pozytywny, zostanie on wyświetlony w oknie komunikatu.

Licencjonowanie (dostępna bezpłatna wersja próbna)

Aby używać IronBarcode, musisz umieścić klucz licencyjny w swoim appsettings.json.

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

Podaj swój adres e-mail, aby otrzymać Licencję Trial. Po przesłaniu adresu e-mail klucz zostanie dostarczony pocztą elektroniczną.

Jak odczytać kod kreskowy z kamery w VB .NET: Figura 7 - Wyskakujące okno po pomyślnym przesłaniu formularza próbnego

Wnioski

Wdrożenie odczytu BarCode z kamery w VB.NET to potężna funkcja, która może wzbogacić różne aplikacje w różnych branżach. Wykorzystując biblioteki takie jak IronBarcode i integrując je z projektem VB.NET, można tworzyć wydajne i niezawodne aplikacje do skanowania kodów kreskowych, które spełniają wymagania dzisiejszego świata opartego na technologii. Niniejszy przewodnik stanowi punkt wyjścia, a programiści mogą dalej dostosowywać i optymalizować rozwiązanie w oparciu o swoje konkretne wymagania, typy BARCODE-ów i przypadki użycia.

Często Zadawane Pytania

Jak odczytać kody kreskowe z kamery za pomocą VB.NET?

Aby odczytać kody kreskowe z kamery w VB.NET, można użyć biblioteki IronBarcode do dekodowania obrazów przechwyconych z sygnału kamery. Najpierw należy skonfigurować projekt VB.NET w Visual Studio, zainstalować IronBarcode za pośrednictwem NuGet i użyć biblioteki AForge do zarządzania danymi wejściowymi z kamery.

Jakie kroki należy wykonać, aby skonfigurować projekt czytnika kodów kreskowych w VB.NET?

Zacznij od utworzenia nowej aplikacji VB.NET Windows Forms w Visual Studio. Zainstaluj bibliotekę IronBarcode za pomocą NuGet i skonfiguruj PictureBox do przechwytywania obrazów z aparatu. Użyj biblioteki AForge do obsługi strumieni z aparatu oraz IronBarcode do dekodowania kodów kreskowych.

Jak zintegrować funkcje przechwytywania obrazu z kamery w aplikacji VB.NET?

Możesz zintegrować funkcje przechwytywania obrazu z kamery w aplikacji VB.NET, używając biblioteki AForge do uzyskiwania dostępu do strumieni z kamery i zarządzania nimi. Strumienie te można następnie przetwarzać w celu przechwytywania obrazów do dekodowania kodów kreskowych za pomocą biblioteki IronBarcode.

Jakie typy kodów kreskowych można dekodować za pomocą IronBarcode w projekcie VB.NET?

IronBarcode obsługuje dekodowanie szerokiej gamy typów kodów kreskowych, w tym kodów QR i Code 128, w projekcie VB.NET. Biblioteka IronBarcode jest wszechstronna i można ją skonfigurować tak, aby rozpoznawała różne formaty kodów kreskowych.

Jakie elementy są niezbędne do stworzenia aplikacji do skanowania kodów kreskowych w VB.NET?

Aby stworzyć aplikację do skanowania kodów kreskowych w VB.NET, potrzebujesz Visual Studio, kompatybilnej kamery, biblioteki IronBarcode zainstalowanej przez NuGet oraz biblioteki AForge do obsługi danych z kamery.

Jak rozwiązać typowe problemy związane z odczytywaniem kodów kreskowych z kamery w VB.NET?

Upewnij się, że kamera jest prawidłowo podłączona i rozpoznana przez system. Sprawdź, czy biblioteka IronBarcode i biblioteka AForge są poprawnie zainstalowane oraz czy aplikacja ma dostęp do obrazu z kamery. Sprawdź składnię kodu i odwołania do bibliotek pod kątem błędów.

Jak wygląda proces wyświetlania wyników skanowania BarCode w aplikacji VB.NET?

Po zdekodowaniu kodu kreskowego za pomocą IronBarcode można wyświetlić wynik w aplikacji VB.NET, pokazując go w komponencie interfejsu użytkownika, takim jak MessageBox lub Label, aby przedstawić dane kodu kreskowego użytkownikowi.

Czy mogę wypróbować bibliotekę BarCode przed zakupem i jak mogę uzyskać wersję próbną?

Tak, możesz wypróbować bibliotekę kodów kreskowych, uzyskując klucz licencji Trial ze strony internetowej Iron Software. Podaj swój adres e-mail, a otrzymasz klucz Trial pocztą elektroniczną, który możesz wykorzystać w swoich projektach VB.NET.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie