WPFでQRコードスキャナーを構築する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

Windows Presentation Foundation (WPF)は、XAMLで定義されたUIを持つWindowsデスクトップアプリケーションを構築するため for .NETフレームワークです。 IronQRはWPFに直接統合されており、ユーザーが選択した画像ファイルからQRコードを簡単な数行のC#コードでスキャンすることを可能にします。

このガイドでは、ファイルダイアログを開き、選択した画像を読み込み、IronQRを使用して埋め込まれたQRコードをデコードするWPFアプリケーションを構築します。 このアプローチは、PNG、JPEG、BMP、GIF、TIFF、およびその他の一般的な画像形式をサポートしています。

前提条件

  1. .NET デスクトップ開発ワークロードがインストールされたVisual Studio 2022
  2. .NET 8またはそれ以降をターゲットとするWPFプロジェクト

IronQRのインストール

Visual StudioのNuGetパッケージマネージャーコンソールを使用してIronQRライブラリをインストールします。 ツール > NuGet パッケージ マネージャ > パッケージ マネージャ コンソールに移動し、次を実行します:

Install-Package IronQR

あるいは、NuGetIronQRを検索し、最新バージョンをインストールしてください。

WPFウィンドウレイアウト

スキャナーのUIでは、TextBlockを使用してデコードされた結果を表示します。 MainWindow.xaml に以下のマークアップを追加してください:

<StackPanel Margin="28" VerticalAlignment="Center">

    <TextBlock Text="WPF QR Code Scanner" FontSize="20" FontWeight="Bold" Margin="0,0,0,16"/>

    <Button x:Name="ScanButton"
            Content="Select Image and Scan QR Code"
            Click="OnScanButtonClicked"
            Padding="12,8"
            Margin="0,0,0,16"
            HorizontalAlignment="Left"/>

    <TextBlock x:Name="ResultLabel"
               Text="Select an image to scan."
               TextWrapping="Wrap"
               FontSize="14"/>

</StackPanel>
<StackPanel Margin="28" VerticalAlignment="Center">

    <TextBlock Text="WPF QR Code Scanner" FontSize="20" FontWeight="Bold" Margin="0,0,0,16"/>

    <Button x:Name="ScanButton"
            Content="Select Image and Scan QR Code"
            Click="OnScanButtonClicked"
            Padding="12,8"
            Margin="0,0,0,16"
            HorizontalAlignment="Left"/>

    <TextBlock x:Name="ResultLabel"
               Text="Select an image to scan."
               TextWrapping="Wrap"
               FontSize="14"/>

</StackPanel>
XML

サンプル入力

以下のQRコードをテスト画像として使用します。 デバイスに保存し、ファイルダイアログで選択して画像を選んでQRコードをスキャンをクリックします。 デコードされた値はhttps://ironsoftware.comとして表示されるはずです。**

Sample QR code encoding https://ironsoftware.com for testing the WPF QR scanner

サンプルQRコード — https://ironsoftware.comをエンコード

IronQRによるQRコードスキャン

ボタンがクリックされると、OnScanButtonClicked により画像を選択するためのファイルダイアログが開きます。 選択されたファイルは AnyBitmap に読み込まれ、QrReader.Read に渡され、最初にデコードされた値が ResultLabel に書き込まれます。

OnScanButtonClicked メソッドを MainWindow.xaml.cs に追加してください:

:path=/static-assets/qr/content-code-examples/get-started/wpf-qr-code-scanner.cs
using IronQr;
using IronSoftware.Drawing;
using Microsoft.Win32;
using System.Windows;

private void OnScanButtonClicked(object sender, RoutedEventArgs e)
{
    // Open a file dialog to select a QR code image
    var dialog = new OpenFileDialog
    {
        Title = "Select a QR code image",
        Filter = "Image Files|*.png;*.jpg;*.jpeg;*.bmp;*.gif;*.tiff"
    };

    if (dialog.ShowDialog() != true) return;

    var imageSource = dialog.FileName;

    // Load the image into IronQR
    var inputBmp = AnyBitmap.FromFile(imageSource);

    // Load the asset into QrImageInput
    QrImageInput imageInput = new QrImageInput(inputBmp);

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

    // Read the input and get all embedded QR Codes
    IEnumerable<QrResult> results = reader.Read(imageInput);

    // Display the first result
    var firstResult = results.FirstOrDefault();
    ResultLabel.Text = firstResult != null
        ? "Scanned Text: " + firstResult.Value
        : "No QR code found in the selected image.";
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.Win32
Imports System.Windows

Private Sub OnScanButtonClicked(sender As Object, e As RoutedEventArgs)
    ' Open a file dialog to select a QR code image
    Dim dialog As New OpenFileDialog With {
        .Title = "Select a QR code image",
        .Filter = "Image Files|*.png;*.jpg;*.jpeg;*.bmp;*.gif;*.tiff"
    }

    If dialog.ShowDialog() <> True Then Return

    Dim imageSource As String = dialog.FileName

    ' Load the image into IronQR
    Dim inputBmp As AnyBitmap = AnyBitmap.FromFile(imageSource)

    ' Load the asset into QrImageInput
    Dim imageInput As New QrImageInput(inputBmp)

    ' Create a QR Reader object
    Dim reader As New QrReader()

    ' Read the input and get all embedded QR Codes
    Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

    ' Display the first result
    Dim firstResult As QrResult = results.FirstOrDefault()
    ResultLabel.Text = If(firstResult IsNot Nothing, "Scanned Text: " & firstResult.Value, "No QR code found in the selected image.")
End Sub
$vbLabelText   $csharpLabel

OpenFileDialog は、一般的な画像形式に絞り込まれたネイティブの Windows ファイル選択機能を提供します。 AnyBitmap.FromFile は、PNG、JPEG、BMP、GIF、および TIFF 入力のフォーマットデコードを処理し、QrReader.Read は、検出された QR コードごとに 1 つのエントリを含む IEnumerable<QrResult> を返します。 FirstOrDefault は、QRコードが見つからない場合、null を安全に返します。これにより、有効なコードが含まれていない画像に対して例外が発生することを回避します。

出力

QRコードの画像を選択し、スキャンボタンをクリックすると、デコードされた値がボタンの下にある TextBlock に表示されます。

WPF QR Code Scanner using IronQR — decoded result displayed in the window

デコードされたQRコードの値はWPFウィンドウに表示されます。

プロジェクトをダウンロードする

完全なWpfQrScannerプロジェクトをダウンロードするにはここをクリックしてください。

結論

IronQRは最小限の設定でWPFアプリケーションに統合できます。1回のFirstOrDefaultを呼び出すのではなく、結果コレクション全体を反復処理してください。

この同じパターンは、イメージファイルのディレクトリをループするバッチ処理や、WPFメディア要素を使用してWebカメラフィードからフレームをキャプチャするリアルタイムスキャンに拡張されます。

QRコードの読み取りと利用可能なスキャンモードの詳細については、画像からQRコードを読み取るガイドとスキャンモードを使用してQRコードを読み取るガイドを参照してください。

よくある質問

WPF QR Code Scanner Tutorialとは何についてですか?

WPF QR Code Scanner Tutorialは、IronQRを使用したQRコードスキャナーの構築に関するステップバイステップガイドを提供しています。画像選択にはOpenFileDialogを使用し、WindowsデスクトップアプリケーションでQRコードをデコードするためにQrReader.Readを使用します。

IronQRはWPFアプリケーションでどのようにQRコードスキャンを容易にしますか?

IronQRは、OpenFileDialogを介して選択された画像から効率的にQRコードをデコードするための、QrReader.Readのようなツールを提供することで、WPFアプリケーションでのQRコードスキャンを簡素化します。

WPFでQRコードスキャナーを構築するために必要な主なコンポーネントは何ですか?

IronQRを使用してWPFでQRコードスキャナーを構築するための主なコンポーネントには、画像を選択するためのOpenFileDialogとQRコードをデコードするためのQrReader.Readメソッドが含まれます。

IronQRはさまざまな画像形式からQRコードをデコードできますか?

はい、IronQRはさまざまな画像形式からQRコードをデコードでき、WPFアプリケーションで画像がさまざまなファイルタイプで提供される場合に汎用性があります。

IronQRを既存のWPFアプリケーションに統合することは可能ですか?

もちろん、IronQRは既存のWPFアプリケーションに統合でき、開発者は現在のシステムを大幅に変更することなくQRコードスキャン機能を追加することができます。

IronQRがWPF開発に適している理由は何ですか?

IronQRは、その使いやすさ、高度なQRコードデコード能力、およびWindowsデスクトップアプリケーションへのシームレスな統合が可能なため、WPF開発に適しています。

OpenFileDialogはWPF QRコードスキャナーでどのようにユーザーエクスペリエンスを向上させますか?

OpenFileDialogは、画像ファイルを選択するためのシンプルなインターフェースを提供し、その後IronQRによってQRコードのデコードが行われることで、ユーザーエクスペリエンスを向上させます。

QRコードスキャンプロセスにおけるQrReader.Readの役割は何ですか?

QrReader.Readは、選択された画像からQRコードをデコードするプロセスで重要な役割を果たし、IronQRの高度なデコードアルゴリズムを活用します。

WPFアプリケーションでIronQRを使用するための前提条件はありますか?

WPFアプリケーションでIronQRを使用するには、開発者はWPF開発の基本的な理解とC#の知識が必要です。IronQRの直感的なAPIはさまざまなスキルレベルの開発者に対応できるよう設計されています。

IronQRはQRコードデコードの精度をどのように保証しますか?

IronQRは、さまざまなQRコードの複雑性や画像品質に効果的に対応できるように設計された高度なアルゴリズムを使用することで、QRコードデコードの精度を保証します。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 67,270 | バージョン: 2026.5 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronQR
サンプルを実行する URL が QR コードになるのを見る。