WPFでQRコードスキャナーを構築する方法
Windows Presentation Foundation (WPF)は、XAMLで定義されたUIを持つWindowsデスクトップアプリケーションを構築するため for .NETフレームワークです。 IronQRはWPFに直接統合されており、ユーザーが選択した画像ファイルからQRコードを簡単な数行のC#コードでスキャンすることを可能にします。
このガイドでは、ファイルダイアログを開き、選択した画像を読み込み、IronQRを使用して埋め込まれたQRコードをデコードするWPFアプリケーションを構築します。 このアプローチは、PNG、JPEG、BMP、GIF、TIFF、およびその他の一般的な画像形式をサポートしています。
WPFでQRコードをスキャンする方法
- NuGetを使用してIronQR C#ライブラリをインストールします
- XAMLでWPFウィンドウに
ButtonとTextBlockを追加します OpenFileDialogでファイルダイアログを開き、ディスクから画像を選択しますAnyBitmap.FromFileで画像を読み込み、QrImageInputにラップしますReadを呼び出し、デコードされた値をTextBlockに表示します
前提条件
- .NET デスクトップ開発ワークロードがインストールされたVisual Studio 2022
- .NET 8またはそれ以降をターゲットとするWPFプロジェクト
IronQRのインストール
Visual StudioのNuGetパッケージマネージャーコンソールを使用してIronQRライブラリをインストールします。 ツール > NuGet パッケージ マネージャ > パッケージ マネージャ コンソールに移動し、次を実行します:
Install-Package IronQR
あるいは、NuGetでIronQRを検索し、最新バージョンをインストールしてください。
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>
サンプル入力
以下のQRコードをテスト画像として使用します。 デバイスに保存し、ファイルダイアログで選択して画像を選んでQRコードをスキャンをクリックします。 デコードされた値はhttps://ironsoftware.comとして表示されるはずです。**
サンプル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
OpenFileDialog は、一般的な画像形式に絞り込まれたネイティブの Windows ファイル選択機能を提供します。 AnyBitmap.FromFile は、PNG、JPEG、BMP、GIF、および TIFF 入力のフォーマットデコードを処理し、QrReader.Read は、検出された QR コードごとに 1 つのエントリを含む IEnumerable<QrResult> を返します。 FirstOrDefault は、QRコードが見つからない場合、null を安全に返します。これにより、有効なコードが含まれていない画像に対して例外が発生することを回避します。
出力
QRコードの画像を選択し、スキャンボタンをクリックすると、デコードされた値がボタンの下にある TextBlock に表示されます。
デコードされたQRコードの値はWPFウィンドウに表示されます。
プロジェクトをダウンロードする
結論
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コードデコードの精度を保証します。

