IRONBARCODEの使用

C# QRコードリーダー (初心者向けステップバイステップチュートリアル)

ジョルディ・バルディア
ジョルディ・バルディア
2024年8月18日
更新済み 2024年8月18日
共有:

イントロダクション

今日のデジタル重視の世界では、QRコード(クイックレスポンスコード)は普及しており、物理的な世界とデジタルの世界をシームレスに結びつけています。 マーケティングから物流、金融からヘルスケアまで、QRコードは効率的なデータ交換を促進する重要な役割を果たしています。

この記事では、C#開発の領域に踏み込み、市場で最高のQRコードライブラリの一つであるIronQRが、開発者にQRコード認識の力を引き出し、データを簡単にデコードし、多様な分野で革新をもたらす方法を探ります。

IronQRは、Iron Software による強力な.NET QRコードリーダーライブラリとして際立っています。 IronQRによって実装された高度な機械学習モデルは、どんな厳しい状況でも、QRコードを無比の精度と効率でデコードできるようにアプリケーションを強化します。

IronQRを使用してC#でQRコードを読み取る方法

  1. Visual Studioプロジェクトを.NET Windowsフォームアプリケーションテンプレートで作成する

  2. NuGetパッケージマネージャーからIronQRをインストールします。

  3. AForgeライブラリからカメラのQRコードを画像として取得

  4. IronQRを使用してQRコードを読み取る。

    IronQR は、.NET フレームワーク内で QR コードをスキャンし、QR コード画像を生成するために設計された、卓越した C# QR コードリーダーライブラリとして際立っています。 最先端のML技術を利用することで、IronQRはQRコードの読み取りをこれまでにないレベルに引き上げました。

    画像、動画、またはライブカメラフィードからQRコードをスキャンする場合でも、ML(機械学習)によるソリューションは迅速かつ信頼性の高い情報の取得を保証します。

    この革新的なアプローチは、データ抽出を効率化するだけでなく、真正のQRコードと潜在的な脅威を識別することにより、セキュリティも強化します。 直感的なAPIを備えたIronQR for .NETは、開発者が数分でQRコード機能を.NETプロジェクトに統合することを可能にします。

    IronQRは、.NET Core (8, 7, 6, 5, 3.1+)、.NET Standard (2.0+)、および.NET Framework (4.6.2+)とシームレスに統合されます。 現在の .NET Core バージョンは、Linux、Unix、および macOS などのクライアントオペレーティングシステムへのサポートを拡張し、モバイルアプリの開発にも対応しています。

前提条件

  1. Visual Studio: Visual Studioまたはその他の.NET開発環境をインストールしていることを確認してください。

  2. 対応カメラ: カメラがデバイスに接続されていることを確認してください。

  3. NuGet パッケージ マネージャー: プロジェクトでパッケージを管理するために NuGet を利用できることを確認してください。

ステップ1: Visual Studio プロジェクトを作成し、.NET Windows フォーム アプリケーション テンプレートを選択します

Windowsフォームの.NETアプリケーションを作成して、カメラのビデオストリームや画像ファイルからQRコードバーコードを読み取ることを始めましょう。 Visual Studio を開き、新しいプロジェクトの作成を選択した後、.NET Windows Forms アプリケーション テンプレートを選択してください。

Csharp Qr Code Reader Tutorial 1 related to ステップ1: Visual Studio プロジェクトを作成し、.NET Windows ...

「次へ」をクリックし、プロジェクト名を入力してください

Csharp Qr Code Reader Tutorial 2 related to ステップ1: Visual Studio プロジェクトを作成し、.NET Windows ...

希望する .NET バージョンを選択してから、作成ボタンをクリックしてください。

Csharp Qr Code Reader Tutorial 3 related to ステップ1: Visual Studio プロジェクトを作成し、.NET Windows ...

ステップ2: NuGetパッケージマネージャーからIronQRをインストールします。

IronQR は、NuGet パッケージマネージャーまたは Visual Studio パッケージマネージャーを使用してインストールできます。

Csharp Qr Code Reader Tutorial 4 related to ステップ2: NuGetパッケージマネージャーからIronQRをイン...

以下は、Visual Studio を使用してそれを実行する方法を示しています。

Csharp Qr Code Reader Tutorial 5 related to ステップ2: NuGetパッケージマネージャーからIronQRをイン...

ステップ3: AForgeライブラリからイメージとしてカメラからQRコードを取得します

カメラデバイスからQRコードをスキャンするには、AForgeCore.Video.DirectShowライブラリをインストールする必要があります。これは、以下のようにVisual Studioのパッケージマネージャーを使用して行うことができます。 ソリューション エクスプローラーを右クリックして、パッケージ マネージャーを開きます。

Csharp Qr Code Reader Tutorial 6 related to ステップ3: AForgeライブラリからイメージとしてカメラか...

このライブラリは、以下のようにNuGetパッケージコンソールを使用してインストールすることもできます。 インストールボタンをクリックしてライブラリをインストールしてください。

Csharp Qr Code Reader Tutorial 7 related to ステップ3: AForgeライブラリからイメージとしてカメラか...

ステップ4: IronQRを使用してQRコードを読み取ります。

次のステップは、フォームにPictureBoxコンポーネントを作成することです。これはマシンに接続されたカメラデバイスからQRコード画像をスキャンするために必要です。

これはツールボックスからドラッグアンドドロップすることで行うことができます。 カメラデバイスからQRコードデータを読み取るために、このPictureBoxが必要です。

Csharp Qr Code Reader Tutorial 8 related to ステップ4: IronQRを使用してQRコードを読み取ります。

次に、QRコードの読み取り結果を表示するテキストボックスをドラッグアンドドロップする必要があります。

Csharp Qr Code Reader Tutorial 9 related to ステップ4: IronQRを使用してQRコードを読み取ります。

以下のコードを追加して、IronQR を使用してQRコードを読み取り、デコードします。

using AForge.Video.DirectShow;
using AForge.Video;
using System.Drawing;
using IronQr;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;

        }

        private VideoCaptureDevice videoSource;
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                videoSource = new VideoCaptureDevice(videoDevices [0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the picture box with the new frame from the camera.
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key
            License.LicenseKey = "YourKey";

            // Load  QrImageInput
            QrImageInput imageInput = new QrImageInput(image);

            // QR Reader object
            QrReader reader = new QrReader();

            // Read QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // display results
            MessageBox.Show(results.First().Value);
        }
    }
}
using AForge.Video.DirectShow;
using AForge.Video;
using System.Drawing;
using IronQr;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;

        }

        private VideoCaptureDevice videoSource;
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                videoSource = new VideoCaptureDevice(videoDevices [0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the picture box with the new frame from the camera.
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key
            License.LicenseKey = "YourKey";

            // Load  QrImageInput
            QrImageInput imageInput = new QrImageInput(image);

            // QR Reader object
            QrReader reader = new QrReader();

            // Read QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // display results
            MessageBox.Show(results.First().Value);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

入力画像ファイル

QRコードにエンコードされたテキストは:I Love IronQR

Csharp Qr Code Reader Tutorial 10 related to 入力画像ファイル

出力

Csharp Qr Code Reader Tutorial 11 related to 出力

例コードの説明

  1. Windows フォームの Form1_Load と Form1_FormClosing に 2 つのイベントを登録しました。

  2. 私たちはまた、AForgeCore.Video.DirectShowライブラリのvideoSourceインスタンスにVideoSource_NewFrameを登録しました。

  3. 次に、ライブビデオストリームからQRコードを読み取ります。

  4. QRコードが検出されると、デコードされたテキストを含むメッセージボックスを表示します

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

IronQRにはライセンスキーが必要です。 トライアルキーはウェブサイトのこちらから取得できます。 このキーはappsettings.jsonに配置する必要があります。

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

試用ライセンスを取得するためのメールIDを入力し、送信するとキーがメールで届きます。

Csharp Qr Code Reader Tutorial 12 related to ライセンス(無料トライアル利用可能)

結論

結論として、QRコードはその起源を超えて、私たちのデジタルエコシステムに不可欠な存在となっています。 IronQR を使用すると、C# 開発者はさまざまな種類のQRコードのデータを簡単にデコードし、さまざまな分野でのイノベーションを図ることができます。

QRコードは進化し続けて新しい技術に統合されるにつれて、シームレスなデータ交換を促進しユーザー体験を向上させる重要性はますます高まるでしょう。 QRコードの可能性をIronQRで活用し、C#開発における革新と効率の旅に出ましょう。

ジョルディ・バルディア
ソフトウェアエンジニア
ジョルディは、Iron Softwareでのスキルを活かしていないときには、ゲームプログラミングをしており、Python、C#、C++に最も堪能です。彼は製品テスト、製品開発、研究の責任を共有しており、継続的な製品改善に大きな価値をもたらしています。この多様な経験は彼を常に挑戦的で魅力的に保ち、彼はIron Softwareで働く一番好きな側面の一つだと言っています。ジョルディはフロリダ州マイアミで育ち、フロリダ大学でコンピューターサイエンスと統計学を学びました。
< 以前
ASP.NETでC#を使用してバーコードを生成する方法