使用IRONBARCODE

如何在VB .NET中使用摄像头读取条形码

发布 2024年三月6日
分享:

在技术快速发展的今天,条形码扫描仪设备已成为从零售和物流到医疗保健和制造业等各行各业不可或缺的一部分。 微软公司的 Visual Basic .NET 是一种通用且功能强大的编程语言,它为开发人员提供了一个强大的框架,用于创建可直接从摄像头信号读取条形码的应用程序。 本文旨在提供一个全面的条形码阅读器教程,使用 Visual Basic 中的摄像头,使用IronBarcode铁软件

IronBarcode 库允许您读取条形码图像文件,也允许您读取从摄像头流出的条形码图像。 它还支持从 PDF 文档中读取 BarCode。 能够一次最多扫描一个条形码。在 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 表单应用程序(或使用现有项目)您要在哪里托管代码,以便从相机读取 BarCode。

如何在 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's 软件包管理器安装 IronBarcode

步骤 3:从相机读取 BarCode

要扫描饲料并从摄像头捕捉图像,我们需要 AForge 库。 从 NuGet 软件包管理器中安装,如下所示

如何在 VB .NET 中从相机读取条形码:图 5 - 在 Visual Studio 软件包管理器中找到的 AForge 库软件包

下一步是将 ToolBox 中的 PictureBox 控件添加到表单中。 这用于从相机中捕捉图像。

如何在 VB .NET 中从相机读取条形码:图 6 - 添加 PictureBox 控件

然后将以下代码复制到窗体应用程序中,并创建 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 码、数据矩阵和带有 code 128 条码类型的条码图像。 首先,我们使用 PictureBox 通过扫描条形码从网络摄像头或任何摄像设备上捕捉条形码图像。 然后,我们创建一个位图图像。 翻译后的内容将作为输入内容提供给 IronBarcode BarcodeReader 类。 此应用程序可从图像中读取二维条形码并进行解码。 如果解码后得到了肯定的结果,那么结果就会显示在消息框中。

许可(可免费试用)

IronBarcode. 这个密钥需要放置在appsettings.json中。

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

提供用户电子邮件 ID 以获取试用许可证,提交电子邮件 ID 后,密钥将通过电子邮件发送。

如何在 VB .NET 中从相机读取条形码:图 7 - 成功提交试用表单后的弹出窗口

结论

在以下应用程序中实现从摄像头读取 BarCodeVB.NET在翻译过程中,我们必须注意到,.NET、Java、Python 或 Node js 是一个强大的功能,可以增强不同行业的各种应用。 通过利用IronBarcode通过将这些工具集成到您的 VB.NET 项目中,您可以创建高效可靠的条形码扫描应用程序,满足当今技术驱动型世界的需求。 本指南可作为一个起点,开发人员可根据自己的具体要求、Barcode 类型和用例进一步定制和优化解决方案。

< 前一页
如何在VB .NET中使用二维条形码
下一步 >
如何在C#中生成Code 128条形码

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 1,320,639 查看许可证 >