.NET MAUI QR Kod Tarayıcı

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

Giriş

.NET MAUI (.NET Çoklu Platform Uygulama UI), tek bir C# kod tabanından yerel mobil ve masaüstü uygulamaları oluşturmak için platformlar arası bir çerçevedir. Tek bir proje, tüm platformlarda kullanıcı arayüzü düzenlerini ve iş mantığını paylaşarak Android, iOS, macOS ve Windows'u hedefleyebilir. MAUI'nin .NET ekosistemi ile entegrasyonu, geliştiricilerin tanıdık araçları veya dilleri terk etmeden mobil kullanıcılara ulaşmasını sağlar.

Bu makalede, cihazın fotoğraf kütüphanesinden seçilen QR kodlarını çözmek için IronQR kullanarak bir .NET MAUI uygulamasında yerel bir QR kod tarayıcı oluşturmayı açıklayacağız.

IronQR: C# QR Kod Kütüphanesi

Uygulamada QR kodları okumak için IronQR .NET kütüphanesini kullanacağız. Mobil cihazda seçilen dosyalar dahil olmak üzere herhangi bir görüntü kaynağından QR kodlarını algılamak ve çözmek için basit bir API sağlar. IronQR tüm MAUI hedef platformlarında çalışır ve entegrasyon için barkod alanı bilgisi gerektirmez.

IronQR, standart QR kodlarını, Micro QR kodlarını ve rMQR kodlarını çözebilir ve görüntü girişini dosyalar, akışlar veya bit eşlemler olarak kabul eder. NuGet Paket Yöneticisi üzerinden birkaç saniyede kurulabilir.

.NET MAUI'de QR Kod Tarayıcı Oluşturma Adımları

Bir .NET MAUI uygulamasına QR kod tarama eklemek için bu adımları izleyin.

Önkoşullar

  1. .NET MAUI iş yükü kurulu olan Visual Studio 2022
  2. Android veya iOS'u hedefleyen bir .NET MAUI projesi

IronQR Kurulumu

Visual Studio'daki NuGet Package Manager Console kullanarak IronQR kütüphanesini yükleyin. Navigasyon icin Tools > NuGet Package Manager > Package Manager Console gidin ve calistirin:

Install-Package IronQR

Alternatif olarak, NuGet uzerinde IronQR arayabilir ve en son surumunu yukleyebilirsiniz.

Ön Yüz Tasarımı

Tarayıcı kullanıcı arayüzü, görüntü seçimini başlattığı bir düğme, seçilen QR kodunu önizlemek için bir görüntü görünümü ve çözülmüş sonucu göstermek için bir etiket içerir.

MainPage.xaml icerigini asagidaki ile değiştirin:

<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiQrScanner.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="scanButton"
                Text="Select QR Code Image"
                SemanticProperties.Hint="Select Image"
                Clicked="OnScanButtonClicked"
                HorizontalOptions="Center" />

            <Image
                x:Name="qrImage"
                SemanticProperties.Description="Selected QR Code"
                HeightRequest="200"
                HorizontalOptions="Center" />

            <Label
                x:Name="resultLabel"
                Text="Scanned Text: "
                HorizontalOptions="Center"
                VerticalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiQrScanner.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="scanButton"
                Text="Select QR Code Image"
                SemanticProperties.Hint="Select Image"
                Clicked="OnScanButtonClicked"
                HorizontalOptions="Center" />

            <Image
                x:Name="qrImage"
                SemanticProperties.Description="Selected QR Code"
                HeightRequest="200"
                HorizontalOptions="Center" />

            <Label
                x:Name="resultLabel"
                Text="Scanned Text: "
                HorizontalOptions="Center"
                VerticalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Örnek Girdi

Aşağıdaki QR kodunu test resmi olarak kullanın. Cihazınıza kaydedin, ardından uygulamanın dosya seçicisi aracılığıyla seçin. Decode edilen değer https://ironsoftware.com olarak gösterilmelidir.

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

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

IronQR ile QR Kod Tarama

Tarama dugmesine dokunuldugunda, FilePicker cihazın resim kutuphanesini acar. Kullanıcı bir fotograf sectikten sonra, tam yol AnyBitmap icine yuklenir ve QrReader.Read()'a iletilir. İlk tespit edilen QR kodundan çözülmüş değer, sonuç etiketinde gösterilir.

MainPage.xaml.cs icin asagidaki metodu ekleyin:

using IronQr;
using IronSoftware.Drawing;

private async void OnScanButtonClicked(object sender, EventArgs e)
{
    // Start scanning QR codes
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();

    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
    resultLabel.Text = "Scanned Text: " + results.First().Value;
}
using IronQr;
using IronSoftware.Drawing;

private async void OnScanButtonClicked(object sender, EventArgs e)
{
    // Start scanning QR codes
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();

    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
    resultLabel.Text = "Scanned Text: " + results.First().Value;
}
Imports IronQr
Imports IronSoftware.Drawing

Private Async Sub OnScanButtonClicked(sender As Object, e As EventArgs)
    ' Start scanning QR codes
    Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
        .PickerTitle = "Pick image",
        .FileTypes = FilePickerFileType.Images
    })
    Dim imageSource = images.FullPath.ToString()

    Dim inputBmp = 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
    resultLabel.Text = "Scanned Text: " & results.First().Value
End Sub
$vbLabelText   $csharpLabel

FilePicker.Default.PickAsync, MAUI platform soyutlama katmani tarafindan saglanir ve platforma ozgu kod olmadan Android, iOS ve Windows'ta calisir. AnyBitmap.FromFile resim decode etmeyi yonetir ve QrReader.Read, resimde bulunan her bir QR kodu icin bir girisle bir IEnumerable<QrResult> dondurur.

Çıktı

Bir QR kod görüntüsü seçmek taramayı tetikler. Çözülen değer, görüntü önizlemesinin altındaki sonuç etiketinde belirir.

.NET MAUI QR Code Scanner using IronQR — app selecting a QR code image and displaying the decoded value

QR kodu seçildi ve çözülen değer sonuç etiketinde gösterildi

Projeyi İndir

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

Sonuç

Bu makalede, bir .NET MAUI uygulamasında IronQR kullanarak yerel bir QR kod tarayıcı nasıl oluşturulacağını gösterdik. FilePicker API, Android, iOS ve Windows'ta platform yerli görüntü secimi saglarken, IronQR'nin QrReader.Read tek bir cagrida decode işlemini halleder. Ayni yaklasim, .First() cagirma yerine tam sonuclar koleksiyonu uzerinde yineleme yaparak görüntü basina birden fazla QR koduna ölçeklenir.

IronQR, geliştirme ve ticari kullanım için bir lisans gerektirir. Lisans detayları burada mevcuttur.

Değerden daha ileri QR kodu özelliklerini okumak için, QR Kodu Değeri Okuma ve QR Kodu Türünü Okuma kılavuzlarına bakınız.

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.