WPF'de Bir QR Kod Tarayıcı Nasıl Yapılır

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

Windows Presentation Foundation (WPF), XAML tanımlı UI'lerle Windows masaüstü uygulamaları oluşturmak için .NET çerçevesidir. IronQR, sadece birkaç C# satırı ile kullanıcı tarafından seçilen görüntü dosyalarından QR kodu taramayı mümkün kılarak doğrudan WPF'ye entegre olur.

Bu kılavuzda, bir dosya diyaloğu açan, seçilen bir resmi yükleyen ve IronQR kullanarak gömülü herhangi bir QR kodunu çözen bir WPF uygulaması oluşturacağız. Yöntem, PNG, JPEG, BMP, GIF, TIFF ve diğer yaygın görüntü formatlarını destekler.

Ön Koşullar

  1. .NET masaüstü geliştirme iş yükü yüklü Visual Studio 2022
  2. .NET 8 veya daha sonrasını hedefleyen bir WPF projesi

IronQR Yükleme

Visual Studio'daki NuGet Package Manager Console kullanarak IronQR kütüphanesini yükleyin. Tools > NuGet Package Manager > Package Manager Console yoluna gidin ve şunu çalıştırın:

Install-Package IronQR

Alternatif olarak, NuGet uzerinde IronQR arayarak en son versiyonu yukleyebilirsiniz.

WPF Pencere Düzeni

Tarayici UI, dosya diyalogunu tetiklemek icin bir Button kullanir ve dekode edilen sonucu göstermek icin bir TextBlock kullanir. Asagidaki markupu MainWindow.xaml ekleyin:

<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

Örnek Girdi

Aşağıdaki QR kodunu test resmi olarak kullanın. Cihazınıza kaydedin, dosya diyalogu aracılığıyla seçin ve Resim Seç ve QR Kodu Tara butonuna tıklayın. Çözülen değer https://ironsoftware.com olarak görünmelidir.

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

Örnek QR kodu - https://ironsoftware.com kodluyor

IronQR ile QR Kod Tarama

Butona tiklandiginda, OnScanButtonClicked bir dosya diyalogu acar ve bir resim secmenizi saglar. Secilen dosya bir AnyBitmap icine yuklenir, QrReader.Read ile iletilir ve ilk dekode edilen değer ResultLabel icine yazilir.

Asagidaki OnScanButtonClicked metodunu MainWindow.xaml.cs ekleyin:

: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, yaygin resim formatlarina filtrelenmis yerel Windows dosya secimini saglar. PNG, JPEG, BMP, GIF ve TIFF girislerinin format dekodunu AnyBitmap.FromFile yonetirken QrReader.Read, tespit edilen her bir QR kodu icin bir girdi iceren bir IEnumerable<QrResult> dondurur. FirstOrDefault, gecerli bir kod bulunmayan resimlerde istisnalardan kacinmak icin hicbir QR kodu bulunmadiginda null guvenli bir sekilde dondurur.

Çıktı

Bir QR kodu resmi secilip tarama butonuna tiklandiktan sonra, dekode edilen değer butonun altindaki TextBlock icinde belirir.

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

Çözülen QR kodu değeri WPF penceresinde gösterilir

Projeyi İndir

Tam WpfQrScanner projesini indirmek için buraya tıklayın.

Sonuç

IronQR, en az kurulum ile bir WPF uygulamasina entegre edilir — tek bir QrReader.Read cagrisi masaustunde tüm dekoding is akisini halleder. Tek bir resimden birden fazla QR kodu taramak icin, FirstOrDefault cagirmak yerine tüm sonuc koleksiyonu uzerinde yineleyin.

Bu aynı desen, bir görüntü dosyaları dizinini dolaşarak toplu işlemeye veya bir WPF medya öğesiyle bir web kamerası beslemesinden kareler yakalayarak gerçek zamanlı taramaya kadar uzanır.

QR kodlarını okuma ve kullanılabilir tarama modları hakkında daha fazla bilgi için, Görselden QR Kodları Oku ve Tarama Modları ile QR Kodları Oku kılavuzlarına bakın.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 64,787 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronQR
bir örneği çalıştır URL'inin bir QR koduna dönüşünü izle.