フッターコンテンツにスキップ
IRONBARCODEの使用

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

技術の急速に進化する状況の中で、バーコードスキャナーデバイスは、小売や物流からヘルスケア、製造業に至るまで、さまざまな業界の不可欠な一部となっています。 MicrosoftのVisual Basic .NETは、多用途で強力なプログラミング言語であり、開発者にカメラフィードから直接バーコードを読み取るアプリケーションを作成するための堅固なフレームワークを提供します。 This article aims to provide a comprehensive barcode reader tutorial using a camera in Visual Basic using the IronBarcode library from Iron Software.

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

VB.NETプロジェクトを開き、NuGetパッケージマネージャーコンソールを使用してIronBarcodeライブラリをインストールします。

Install-Package BarCode

VB .NETでカメラからバーコードを読み取る方法: 図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

    ' 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

このサンプルコードでは、QRコードとCode 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を使用してカメラからバーコードを読むにはどうすればよいですか?

VB.NETでカメラからバーコードを読み取るには、IronBarcodeライブラリを使用してカメラフィードからキャプチャされたイメージをデコードすることができます。まず、Visual StudioでVB.NETプロジェクトをセットアップし、NuGetを通じてIronBarcodeをインストールし、AForgeライブラリを使用してカメラインプットを管理します。

VB.NETでバーコードリーダープロジェクトを設定するにはどのような手順が含まれますか?

まず、Visual Studioで新しいVB.NET Windowsフォームアプリケーションを作成します。NuGetを使用してIronBarcodeライブラリをインストールし、カメラから画像をキャプチャするためにPictureBoxを構成します。AForgeライブラリを使用してカメラフィードを処理し、IronBarcodeでバーコードをデコードします。

VB.NETアプリケーションでカメラキャプチャ機能を統合するにはどうすればよいですか?

AForgeライブラリを使用してカメラフィードへのアクセスと管理を行うことで、VB.NETアプリケーションにカメラキャプチャ機能を統合することができます。これらのフィードは、IronBarcodeを使用してバーコードをデコードするための画像を取得するために処理されます。

VB.NETプロジェクトでIronBarcodeを使用してデコードできるバーコードの種類はどれですか?

IronBarcodeは、QRコードやCode 128を含む広範なバーコードタイプデコードをサポートしています。ライブラリは多用途で、さまざまなバーコードフォーマットを認識するように設定できます。

VB.NETでバーコードスキャンアプリケーションを開発するために必要なコンポーネントは何ですか?

VB.NETでバーコードスキャンアプリケーションを開発するには、Visual Studio、互換性のあるカメラ、NuGetを通じてインストールされたIronBarcodeライブラリ、およびカメラインプットを処理するためのAForgeライブラリが必要です。

VB.NETでカメラからバーコードを読み取る際の一般的な問題をトラブルシューティングするにはどうすればよいですか?

カメラが正しく接続され、システムによって認識されていることを確認してください。IronBarcodeとAForgeライブラリが正しくインストールされており、アプリケーションがカメラフィードにアクセスできることを確認します。コードの文法とライブラリの参照をエラーがないか確認してください。

VB.NETアプリケーションでバーコードスキャンの結果を表示するプロセスは何ですか?

バーコードがIronBarcodeを使用してデコードされたら、結果をMessageBoxやLabelなどのUIコンポーネントに表示し、ユーザーにバーコードデータを提示することができます。

購入前にバーコードライブラリを試すことはできますか、そのトライアルを取得するにはどうすればよいですか?

はい、Iron Softwareのウェブサイトからトライアルライセンスキーを取得することでバーコードライブラリを試すことができます。メールIDを送信すると、VB.NETプロジェクトで使用するためのトライアルキーがメールで届きます。

Jordi Bardia
ソフトウェアエンジニア
Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。