IRONBARCODEの使用

VB .NETでカメラからバーコードを読み取る方法

公開済み 2024年3月6日
共有:

急速に進化する技術の分野において、バーコードスキャナーデバイスは、小売業や物流から医療や製造業まで、さまざまな業界に欠かせない存在となっています。 Microsoft の Visual Basic .NET は、多機能で強力なプログラミング言語であり、カメラフィードから直接バーコードを読み取ることができるアプリケーションを作成するための堅牢なフレームワークを開発者に提供します。 この記事では、Visual Basicを使用してカメラを利用した包括的なバーコードリーダーチュートリアルを提供することを目的としています。IronBarcode以下の内容を日本語に翻訳してください:

のライブラリIron Software

IronBarcodeライブラリは、バーコード画像ファイルを読み取ることができるだけでなく、カメラからストリームされた場合でも読み取ることができます。 PDFドキュメントからのバーコードの読み取りもサポートしています。 1度に1つのバーコードのみをスキャンできます。バーコードの種類は、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

.NETのVBでカメラからバーコードを読み取る方法: 図3 - NuGet IronBarcodeパッケージのインストール

NuGet パッケージは、以下に示すように Visual Studio の NuGet パッケージ マネージャーを使用してインストールすることもできます。

VB .NETでカメラからバーコードを読み取る方法: 図4 - Visual Studioのパッケージマネージャーを通じてIronBarcodeをインストールする

ステップ3: カメラからバーコードを読み取る

フィードをスキャンしてカメラから画像をキャプチャするためには、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コード、データマトリックス、およびコード128バーコードタイプのバーコード画像を読み取るように設定されています。 まず、PictureBox を使用して、ウェブカメラまたは任意のカメラデバイスからバーコードをスキャンしてバーコードの画像をキャプチャします。 次に、ビットマップ画像を作成します。 それは IronBarcode BarcodeReader クラスへの入力として提供されます。 このアプリケーションは画像から2Dバーコードを読み取り、デコードします。 デコードの結果が成功した場合、結果がメッセージボックスに表示されます。

ライセンス(無料トライアル利用可能)

IronBarcode. このキーはappsettings.jsonに配置する必要があります。

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

ユーザーのメールIDを提供してトライアルライセンスを取得します。メールIDを送信すると、キ―がメールで配信されます。

カメラからバーコードを読み取る方法(VB .NET):図7 - 試用フォームの送信に成功した後のポップアップ

結論

カメラからのバーコード読み取りの実装VB.NET(ヴィビー ドットネット)さまざまな業界にわたるさまざまなアプリケーションを強化できる強力な機能です。 以下のようなライブラリを活用することでIronBarcodeそれらをVB.NETプロジェクトに統合することで、今日の技術主導の世界の要求に応える効率的で信頼性の高いバーコードスキャンアプリケーションを作成することができます。 このガイドは出発点として機能し、開発者は自身の特定の要求、バーコードの種類、およびユースケースに基づいてソリューションをさらにカスタマイズおよび最適化することができます。

< 以前
VB .NETで2Dバーコードを使用する方法
次へ >
C#でCode 128バーコードを生成する方法