使用 IRONBARCODE

如何在 VB .NET 中從相機讀取條碼

發佈 2024年3月6日
分享:

在快速變化的科技領域中,條碼掃描設備已成為各種行業的重要組成部分,從零售和物流到醫療保健和製造業。 來自微軟的 Visual Basic .NET 是一種多功能且強大的編程語言,為開發人員提供了一個強大的框架,用於創建可以直接從攝像頭影像讀取條碼的應用程序。 本文旨在提供一個使用相機在 Visual Basic 中進行條碼讀取的全面教程,使用IronBarcode圖書館由Iron Software

IronBarcode 庫允許您讀取條碼圖像文件,還可以從攝像頭流中讀取。 它也支援從 PDF 文件讀取條碼。 一次只能掃描一個條碼。在使用VB.NET條碼閱讀器SDK讀取條碼圖像時,需要指定條碼類型。

如何在 VB .NET 中從相機讀取條碼

  1. 在 Visual Studio 中創建一個新的 VB.NET 專案

  2. 安裝 IronBarcode 庫並將其應用於您的專案。

  3. 從 Aforge 函式庫中將相機的條碼作為圖像獲取

  4. 使用 IronBarcode 解碼條碼圖像

先決條件

  1. Visual Studio: 確保您已安裝 Visual Studio 或其他任何 VB.NET 開發環境。

  2. 相容相機: 確保所述相機已連接到您的設備

  3. NuGet 套件管理器: 確保您能使用 NuGet 來管理專案中的套件。

步驟 1:在 Visual Studio 中建立新的 Visual Basic .NET 專案

創建一個新的 VB.NET Windows 表單應用程式(或使用現有的專案)您希望在哪裡託管代碼以從相機讀取條碼。

如何在 VB.NET 中從相機讀取條碼:圖 1 - 創建新的 VB.NET Windows 表單應用程式

在下一步,您可以提供解決方案和專案名稱。

如何在 VB .NET 中從相機讀取條碼:圖 2 - 配置帶有名稱和解決方案的專案

選擇 .NET 版本並點擊「創建」按鈕。

步驟 2:安裝 IronBarcode 函式庫

打開您的 C# 專案並使用 IronBarcode 程式庫進行安裝NuGet套件管理器控制台:

Install-Package BarCode

如何在 VB .NET 中從攝像頭讀取條碼:圖 3 - 安裝 NuGet IronBarcode 套件

如下面所示,也可以使用 Visual Studio 的 NuGet 套件管理器來安裝 NuGet 套件。

如何在 VB .NET 中從相機讀取條碼:圖 4 - 通過 Visual Studio 的套件管理器安裝 IronBarcode

步驟3:從相機讀取條碼

要掃描供稿並從相機捕獲圖像,我們需要 AForge 庫。 從 NuGet 套件管理器安裝如下

如何在VB .NET中從相機讀取條碼:圖5 - 在Visual Studio包管理器中找到的AForge庫包

接下來的步驟是從工具箱將 PictureBox 控制項添加到表單中。 這用於從相機捕獲圖像。

如何從VB .NET中的攝像頭讀取條碼:圖6 - 添加PictureBox控件

然後將以下代碼複製到 Forms 應用程序中,並從 IronBarcode 創建 VB .NET 條碼讀取器組件。

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

在此範例程式碼中,我們已設定為讀取 QR 碼、數據矩陣和具有代碼 128 條形碼類型的條形碼圖像。 首先,我們使用 PictureBox 從網路攝影機或任何攝像裝置掃描條碼以捕獲條碼圖像。 然後我們創建一個位圖圖像。 然後將其作為輸入提供給IronBarcode BarcodeReader類。 此應用程式從圖像中讀取二維條碼並解碼。 如果在解碼後獲得正結果,則結果將顯示在消息框中。

授權(免費試用可用)

IronBarcode. 此鍵需要放置在 appsettings.json 中。

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

提供用戶電子郵件地址以獲取試用許可證,提交電子郵件地址後,許可證密鑰將通過電子郵件發送。

如何在 VB .NET 中從相機讀取條碼:圖 7 - 成功提交試用表格後的彈出窗口

結論

從攝像頭實現條碼讀取VB.NET是一個強大的功能,可以增強不同行業的各種應用程式。 透過利用像IronBarcode並將它們整合到您的 VB.NET 專案中,您可以創建高效且可靠的條碼掃描應用程式,以滿足當今技術驅動世界的需求。 本指南作為起點,開發人員可以根據他們的具體需求、條碼類型和使用案例進一步自訂和優化解決方案。

< 上一頁
如何在VB .NET中使用2D條碼
下一個 >
如何在 C# 中生成 Code 128 條形碼

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 1,320,639 查看許可證 >