Comment créer un scanner de codes QR dans WPF

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

Windows Presentation Foundation (WPF) est un framework .NET pour créer des applications de bureau Windows avec des interfaces utilisateur définies en XAML. IronQR s'intègre directement dans WPF, permettant le scan de codes QR à partir de fichiers image sélectionnés par l'utilisateur avec seulement quelques lignes de C#.

Dans ce guide, nous allons créer une application WPF qui ouvre une boîte de dialogue de fichiers, charge une image sélectionnée et décode tout code QR intégré à l'aide de IronQR. L'approche prend en charge les formats d'image courants tels que PNG, JPEG, BMP, GIF, TIFF, etc.

Prérequis

  1. Visual Studio 2022 avec la charge de travail développement de bureau .NET installée
  2. Un projet WPF ciblant .NET 8 ou une version ultérieure

Installer IronQR

Installez la bibliothèque IronQR en utilisant la console du gestionnaire de packages NuGet dans Visual Studio. Accédez à Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages et exécutez :

Install-Package IronQR

Vous pouvez également rechercher IronQR sur NuGet et installer la dernière version.

Disposition de la fenêtre WPF

L'interface utilisateur du scanner utilise un Button pour déclencher la boîte de dialogue de fichier et un TextBlock pour afficher le résultat décodé. Ajoutez le balisage suivant à 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

Exemple d'entrée

Utilisez le code QR ci-dessous comme image test. Enregistrez-le sur votre appareil, sélectionnez-le via la boîte de dialogue de fichiers, puis cliquez sur Sélectionner l'image et scanner le code QR. La valeur décodée devrait s'afficher sous la forme https://ironsoftware.com.**

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

Exemple de code QR — encode https://ironsoftware.com

Scan de code QR avec IronQR

Lorsque l'on clique sur le bouton, OnScanButtonClicked ouvre une boîte de dialogue permettant de sélectionner une image. Le fichier sélectionné est chargé dans un AnyBitmap, transmis à QrReader.Read, et la première valeur décodée est écrite dans ResultLabel.

Ajoutez la méthode OnScanButtonClicked suivante à 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 permet la sélection native de fichiers Windows filtrée selon les formats d'image courants. AnyBitmap.FromFile gère le décodage du format pour les entrées PNG, JPEG, BMP, GIF et TIFF, tandis que QrReader.Read renvoie un IEnumerable<QrResult> contenant une entrée par code QR détecté. FirstOrDefault renvoie en toute sécurité null lorsqu'aucun code QR n'est trouvé, évitant ainsi les exceptions sur les images ne contenant pas de code valide.

Sortie

Après avoir sélectionné une image de QR et cliqué sur le bouton de scan, la valeur décodée apparaît dans le TextBlock sous le bouton.

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

Valeur du code QR décodée rendue dans la fenêtre WPF

Téléchargez le projet

Cliquez ici pour télécharger le projet complet WpfQrScanner.

Conclusion

IronQR s'intègre dans une application WPF avec une configuration minimale : un simple appel QrReader.Read gère l'ensemble du pipeline de décodage sur le bureau. Pour scanner plusieurs codes QR à partir d'une seule image, parcourez l'ensemble des résultats au lieu d'appeler FirstOrDefault.

Ce même modèle s'étend au traitement en lot en parcourant un répertoire de fichiers image, ou au scan en temps réel en capturant des images depuis un flux de caméra avec un élément média WPF.

Pour en savoir plus sur la lecture de codes QR et les modes de scan disponibles, consultez les guides Lire les codes QR à partir d'une image et Lire les codes QR avec les modes de scan.

Questions Fréquemment Posées

De quoi parle le tutoriel sur le scanner de codes QR WPF ?

Le tutoriel sur le scanner de codes QR WPF fournit un guide étape par étape pour créer un scanner de codes QR en utilisant IronQR. Il explique comment utiliser OpenFileDialog pour la sélection d'images et QrReader.Read pour le décodage des codes QR dans une application de bureau Windows.

Comment IronQR facilite-t-il le balayage de codes QR dans une application WPF ?

IronQR simplifie le balayage de codes QR dans une application WPF en fournissant des outils comme QrReader.Read, qui décode efficacement les codes QR à partir d'images sélectionnées via OpenFileDialog.

Quels sont les principaux composants nécessaires pour construire un scanner de codes QR dans WPF ?

Les principaux composants pour construire un scanner de codes QR dans WPF avec IronQR incluent l'OpenFileDialog pour sélectionner des images et la méthode QrReader.Read pour le décodage des codes QR.

IronQR peut-il décoder les codes QR à partir de différents formats d'image ?

Oui, IronQR peut décoder les codes QR à partir de divers formats d'image, ce qui le rend polyvalent pour une utilisation dans des applications WPF où les images peuvent provenir de différents types de fichiers.

Est-il possible d'intégrer IronQR avec des applications WPF existantes ?

Absolument, IronQR peut être intégré avec des applications WPF existantes, permettant aux développeurs d'ajouter des capacités de balayage de codes QR sans réviser leur système actuel.

Qu'est-ce qui rend IronQR adapté au développement WPF ?

IronQR est adapté au développement WPF en raison de sa facilité d'utilisation, de ses capacités robustes de décodage de codes QR et de son intégration transparente dans les applications de bureau Windows.

Comment l'OpenFileDialog améliore-t-il l'expérience utilisateur dans un scanner de codes QR WPF ?

L'OpenFileDialog améliore l'expérience utilisateur en fournissant une interface simple pour sélectionner des fichiers d'image, qui peuvent ensuite être traités par IronQR pour décoder les codes QR.

Quel est le rôle de QrReader.Read dans le processus de balayage de codes QR ?

QrReader.Read est crucial dans le processus de balayage de codes QR car il décode le code QR à partir de l'image sélectionnée, en exploitant les algorithmes de décodage avancés d'IronQR.

Y a-t-il des prérequis pour utiliser IronQR dans une application WPF ?

Pour utiliser IronQR dans une application WPF, les développeurs doivent avoir une compréhension de base du développement WPF et être familiers avec C#. L'API simple d'IronQR la rend accessible aux développeurs de tous niveaux de compétence.

Comment IronQR assure-t-il l'exactitude du décodage des codes QR ?

IronQR assure l'exactitude du décodage des codes QR grâce à ses algorithmes avancés, conçus pour gérer divers niveaux de complexité des codes QR et différentes qualités d'image efficacement.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 67,270 | Version : 2026.5 just released
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronQR
exécuter un échantillon regarder votre URL devenir un code QR.