IRONSOFTWAREHOME
IRONBARCODE KULLANARAK

IronBarcode kullanarak bir .NET MAUI Barkod Tarayıcı SDK Uygulaması Nasıl Oluşturulur

Curtis Chau
Curtis Chau
Updated: 28 Haziran 2026

.NET MAUI, Android, iOS ve Windows'u hedefleyen tek bir kod tabanının vaadini yerine getirir. Barkod tarama gibi yerel donanım özelliklerini entegre etmeniz gerektiğinde zorluklar ortaya çıkar. Kamera API'lerini manuel köprülemek, platforma özel yapılandırmalar, koşullu derleme yönergeleri ve saatlerce hata ayıklama anlamına gelir. Daha hızlı bir yol var.

Bu eğitim, IronBarcode kullanarak .NET MAUI'de çalışan bir çapraz platform barkod tarayıcıyı nasıl oluşturacağınızı gösterir. Projeyi kuracak, platform izinleri yapılandıracak, görüntü dosyalarından barkod tarayacak, PDF belgelerinden barkod okuyacak ve tarama seçenekleriyle birden fazla sembolojiyle başa çıkacaksınız -- tümü uygulanabileceğiniz herhangi bir desteklenen hedefte çalıştırabileceğiniz kod ile.

Ücretsiz deneme sürümünüzü başlatın ve aşağıdaki adımları takip edin.

NuGetNuGet ile yükleyin

PM > Install-Package BarCode

Install IronBarcode by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.

.NET MAUI'de Barkod Tarayıcı SDK'sı Nasıl Kurulur?

.NET MAUI barkod tarayıcı SDK'sı oluşturmak, yeni bir proje oluşturmayı, NuGet paketini yüklemeyi ve platform izinlerini yapılandırmayı gerektirir. Tüm yapılandırma süreci Visual Studio'da birkaç dakika sürer.

.NET MAUI Projesi Oluşturun

Visual Studio'yu açın ve yeni bir .NET MAUI App projesi oluşturun. Projenize "BarcodeScanner" gibi açıklayıcı bir isim verin ve hedef framework olarak .NET 8'i veya daha yenisini seçin. Visual Studio, Android ve iOS için platforma özel klasörlerle varsayılan proje yapısını oluşturur.

.NET 10'u hedefliyorsanız, aynı proje şablonu uygulanır. <TargetFrameworks> özelliğini .csproj dosyanızda güncelleyerek gerekli görünüm için net10.0-android, net10.0-ios ve net10.0-windows10.0.19041.0 ekleyiniz. .NET MAUI desteklenen platformlar dokümantasyonu, hedef çerçeve takma adlarının ve minimum OS sürüm gereksinimlerinin tam listesini sağlar.

IronBarcode'u Yükleyin

Paket Yöneticisi Konsolu'nu kullanarak IronBarcode NuGet paketini kurun:

PM > Install-Package BarCode

Bu komut, .NET MAUI uygulaması için gerekli tüm bağımlılıklarla birlikte barkod tarayıcı SDK'sını indirir ve yükler.

Platform İzinlerini Yapılandırın

Canlı kamera yayını yerine görüntü dosyalarından tarama yapıldığında bile, .NET MAUI barkod tarayıcı uygulaması için aşağıdaki izinleri yapılandırmak iyi bir uygulamadır.

Android için, Platforms/Android/AndroidManifest.xml'e aşağıdakileri ekleyiniz:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
XML

iOS için, bu girdileri Platforms/iOS/Info.plist 'ye ekleyiniz:

<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
XML

SDK'yı Başlatın

Herhangi bir tarama çağrısından önce IronBarcode'un tamamen etkinleştirildiğinden emin olmak için lisans anahtarınızı uygulamanın yaşam döngüsünün başında ayarlayın. Aktivasyonu MauiProgram.cs içine yerleştiriniz:

using IronBarCode;

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
    });

// Activate IronBarcode before the app starts
License.LicenseKey = "YOUR_LICENSE_KEY_HERE";

return builder.Build();

ücretsiz deneme lisansı geliştirme ve test için sağlar. Anahtarını başlangıçta bir kere ayarlayın; aynı işlem içinde BarcodeReader ve BarcodeWriter için yapılacak tüm sonraki çağrılar aktive edilmiş lisansı kullanır.

Görüntü Dosyalarından Barkodları Nasıl Okursunuz?

Her MAUI barkod tarayıcısının temel işlevi, seçilen görüntülerden barkod okumaktır. BarcodeReader.Read() yöntemi, bir dosya yolu alır ve algılanan her barkod için bir BarcodeResult nesneleri koleksiyonu döndürür.

Kullanıcı Arayüzünü Tasarlayın

Kullanıcıların bir görüntü dosyası seçmesini ve taranan barkod verilerini görüntülemesini sağlayan MainPage.xaml içinde temiz bir arayüz oluşturun:

<?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="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</ContentPage>
XML

Barkod Tarama İşlevselliğini Uygulayın

Tarama mantığını MainPage.xaml.cs 'e ekleyiniz. Bu kod, MAUI FilePicker API üzerinden görüntü seçimini ele alır ve seçilen dosya yolunu IronBarcode'a iletir:

using IronBarCode;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });

        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);

            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);

            ResultLabel.Text = barcodes.Any()
                ? $"Found: {barcodes.First().Value}"
                : "No barcodes detected in selected image.";
        }
    }
}

Çıktı

.NET MAUI Barkod Tarayıcı SDK: Dakikalar İçinde Çapraz-Platform Tarayıcı Yapın: Görüntü 1 - Taranan barkod çıktısı

BarcodeReader.Read() yöntemi, seçilen görüntüyü analiz eder ve algılanan tüm barkodları döndürür. IronBarcode, QR kodları, Code 128, Code 39, EAN-13 ve birçok diğer desteklenen format dahil olmak üzere birden fazla barkod türünü otomatik olarak tanır. Sonuç koleksiyonu, BarcodeType, Value, PageNumber gibi özellikleri ve algılanan her kod için sınırlayıcı kutu koordinatlarını sunar.

PDF Belgelerinden Barkodları Nasıl Taramalısınız?

IronBarcode'u birçok alternatife göre farklı kılan bir özellik, barkodları doğrudan PDF dosyalarından okuyabilmesidir. Bu, .NET MAUI uygulamaları için belge iş akışlarını işlemek açısından gereklidir -- sevkiyat belgeleri, satın alma siparişleri, tıbbi kayıtlar ve benzeri kullanım alanları, PDF içerikli barkodlara dayanır.

BarcodeReader.ReadPdf() yöntemi bir dosya yolu alır ve görüntü okuyucu ile aynı BarcodeResult koleksiyonunu döndürür, her barkodun hangi PDF sayfasından geldiğini belirleyen ek bir PageNumber özelliği ile birlikte:

using IronBarCode;

private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });

    if (result != null)
    {
        // Read barcodes from every page of the PDF
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);

        var output = string.Join("\n", barcodes.Select(b =>
            $"Page {b.PageNumber}: [{b.BarcodeType}] {b.Value}"));

        await DisplayAlert("Scan Results", output.Length > 0 ? output : "No barcodes found.", "OK");
    }
}

Çıktı

.NET MAUI Barkod Tarayıcı SDK: Dakikalar İçinde Çapraz-Platform Tarayıcı Yapın: Görüntü 2 - İçinde QR kodları bulunan bir PDF'i tarama çıktısı

ReadPdf() yöntemi, bir PDF'in tüm sayfalarını tarar ve barkod verilerini sayfa numaraları ile birlikte döndürerek birden fazla barkod içeren belgeleri işlemeyi kolaylaştırır. PDF düzinelerce sayfa içeriyorsa, taramayı ilgili sayfalarla sınırlamak ve işlem süresini azaltmak için BarcodeReaderOptions nesnesini PageNumbers belirli bir aralığa ayarlayarak geçirmeyi düşünün.

Birden Fazla Barkod ve QR Kodunu Nasıl İşlersiniz?

Üretim uygulamaları genellikle tek bir görüntüden birden fazla barkod tespit etmeli veya sonuçları barkod türüne göre filtrelemelidir. BarcodeReaderOptions sınıfı, algılama davranışını kontrol eden yapılandırma özelliklerini sunar. ExpectMultipleBarcodes, true olarak ayarlandığında okuyucuya, ilk eşleşmeden sonra taramaya devam etmesini söyler ve erken durmayı bırakır.

using IronBarCode;

// Configure the reader for multi-barcode detection with type filtering
var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};

var barcodes = BarcodeReader.Read(imagePath, options);

foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}

Speed özelliği, tarama süresi ile doğruluk arasındaki dengeyi kontrol eder. ReadingSpeed.Faster, toplu olarak yüksek kaliteli görüntüleri tarayan uygulamalara uygun olan verimliliği önceliklendirir. ReadingSpeed.ExtraSlow ise zorlu girdiler için daha agresif görüntü düzeltme geçişleri uygular -- düşük kontrast, eğik açılar veya kısmen engellenmiş kodlar. ReadingSpeed.Balanced, çoğu uygulama için doğru başlangıç noktasıdır.

BarcodeEncoding numaralandırması, bit bazlı kombinasyonları destekler, böylece gereksiz kontrollerle performansı düşürmeden kullanıma uygun sembolojilere taramayı sınırlayabilirsiniz.

Bellek Akışlarından Barkodları Nasıl Okursunuz?

Çok sayıda senaryodan biri olan dosya yolları iyi çalışır, ancak bazı .NET MAUI iş akışları görüntü verilerini bellek üzerinden geçirir - bir kamera ön izleme çerçevesinden yakalanan kareler, bir REST API üzerinden indirilen baytlar veya işlenmekte olan görüntü verileri. IronBarcode, doğrudan BarcodeReader.Read() aşırı yüklemesinde System.IO.Stream girdilerini destekler.

using IronBarCode;
using System.IO;

// Read a barcode from a MemoryStream (e.g., an in-memory image buffer)
private BarcodeResult[] ReadFromStream(Stream imageStream)
{
    return BarcodeReader.Read(imageStream);
}

// Example: download an image and scan without writing to disk
private async Task<string> ScanDownloadedBarcode(string imageUrl)
{
    using var httpClient = new HttpClient();
    using var stream = await httpClient.GetStreamAsync(imageUrl);
    using var memoryStream = new MemoryStream();

    await stream.CopyToAsync(memoryStream);
    memoryStream.Position = 0;

    var barcodes = BarcodeReader.Read(memoryStream);
    return barcodes.Any() ? barcodes.First().Value : string.Empty;
}

Akış aşırı yüklemesi, Stream alt sınıfı olan herhangi bir şeyi kabul eder, bunlar arasında MemoryStream, FileStream ve ağ akışları bulunur. Kütüphane, biçim algılamayı dahili olarak işler, bu yüzden Read() çağrısından önce görüntü türünü belirtmeniz gerekmez.

Bir MAUI Uygulamasında Barkodları Nasıl Oluşturursunuz?

IronBarcode barkod oluşturmanın yanı sıra okuma işlevi de sunar. BarcodeWriter sınıfı, barkodları görüntü dosyaları, Bitmap nesneleri veya bir MAUI görünümünde satır içi görüntüleyebileceğiniz Stream örnekleri olarak üretir. Bu, tarama işlevselliğiyle birlikte barkodları yazdırması veya paylaşması gereken stok uygulamaları için yararlıdır.

using IronBarCode;

// Generate a QR code and display it in a MAUI Image control
private async void OnGenerateQrClicked(object sender, EventArgs e)
{
    // Create a QR code barcode
    var qrCode = QRCodeWriter.CreateQrCode(
        value: "https://ironsoftware.com/csharp/barcode/",
        qrCodeSize: 500,
        errorCorrection: QRCodeWriter.QrErrorCorrectionLevel.Medium
    );

    // Save to a temporary file and display
    var tempPath = Path.Combine(FileSystem.CacheDirectory, "generated-qr.png");
    qrCode.SaveAsPng(tempPath);

    GeneratedImageView.Source = ImageSource.FromFile(tempPath);
}

QRCodeWriter sınıfı, tüm dört QR hata düzeltme seviyesini (Düşük, Orta, Çeyrek, Yüksek), özel boyutlandırmalar ve ön plan/arka plan renk kontrolü dahil stil seçeneklerini destekler. QR dışı sembolojiler için BarcodeWriter.CreateBarcode() 'ü uygun BarcodeEncoding değeri ile kullanın. barkod oluşturma API referansı, tüm desteklenen çıkış formatlarını belgeler.

Bu Barkod Tarayıcı Kütüphanesinin Temel Yetenekleri Nelerdir?

IronBarcode, ZXing.Net.MAUI gibi açık kaynak alternatiflerinden ayıran birkaç avantaj sunar .NET MAUI barkod tarama projeleri için.

IronBarcode özellikleri için .NET MAUI geliştirme
YetenekDetay
Çapraz platform desteğiTek bir NuGet paketinden Android, iOS ve Windows'u hedefler
Birden fazla giriş kaynağıDosya yolları, bellek akışları ve PDF belgelerinden tarama yapar
Format kapsama alanıQR, Veri Matrisi ve PDF417 dahil olmak üzere 30'dan fazla 1D ve 2D sembolojiyi çözer
Barkod oluşturmaPNG, bitmap veya akış çıktısı olarak QR kodları ve 1D barkodlar üretir
Görüntü DüzeltmeDönmüş, eğik ve düşük kontrastlı girdileri otomatik olarak işler
Yerel SDK bağımlılığı yokHerhangi bir platforma özgü yerel bağlamalar gerektirmeyen tamamen .NET kütüphanesi

Yerel SDK bağımlılığı yok noktası .NET MAUI projelerinde önemlidir çünkü platforma özgü yerel kütüphaneler, her hedef için ayrı bağlama adımları gerektirir. IronBarcode, bu karmaşıklığı tamamen ortadan kaldırır, bu da ek yapılandırma gerektirmeden çalışabilir ikili dosyalar elde edileceği anlamına gelir.

Desteklenen barkod formatlarının tam listesini görmek için IronBarcode desteklenen formatlar belgeleri bölümüne bakın. Üretim dağıtımı için fiyatlandırma ve lisanslama koşullarını incelemek için, IronBarcode lisanslama sayfasına göz atın.

Üretimde Barkod Tarama İçin En İyi Uygulamalar Nelerdir?

Bir barkod tarayıcıyı üretime dağıtmak, temel okuma çağrısının ötesinde birkaç alana dikkat gerektirir. Aşağıdaki kılavuzlar, .NET MAUI barkod uygulamalarındaki en yaygın başarısızlık noktalarına hitap eder.

Doğru okuma hızını seçin. ReadingSpeed.Balanced, çoğu gerçek dünya görüntülerini doğru bir şekilde işler. Baskılı belgeler veya kullanıcıların tekrar çekemeyeceği görüntüler için ReadingSpeed.ExtraSlow 'i saklayın. Her taramanın önemli ölçüde daha uzun sürdüğü için, yüksek hacimli iş akışları için ReadingSpeed.ExtraSlow kullanmaktan kaçının.

Beklenen türlere göre filtreleyin. Uygulama yalnızca QR kodlarını işlerse, ExpectBarcodeTypes = BarcodeEncoding.QRCode ayarlayın. Arama alanını sınırlamak, işleme süresini kısaltır ve arka planda bulunan diğer sembolojilerden yanlış pozitifleri ortadan kaldırır.

Yalnızca gerektiğinde ExpectMultipleBarcodes kullanın. Bunu true olarak ayarlamak, okuyucuyu her zaman ek geçişler yapmaya zorlar. Tek barkod girdileri için ilk geçerli kod bulunduğunda taramanın hemen dönmesi için varsayılan (false) bırakın.

Boş sonuçları zarifçe işleyin. BarcodeReader.Read() barkod bulunamadığında hata oluşturmadan boş bir dizi döndürür. .Any() 'yı First() 'ya erişmeden önce kontrol edin ve kullanıcıya net bir mesaj iletin. Bir yeniden deneme istemi ve talimatlar ("barkodun iyi aydınlatıldığından ve ortalandığından emin olun") sağlaması, genel bir hata mesajından daha iyi bir kullanıcı deneyimi sunar.

Seçenekler nesnesini ön belleğe alın. Her taramada bir BarcodeReaderOptions örneği oluşturmak, ayırımlara ekleme yapar. Seçenekleri sınıf seviyesinde bir kez oluşturup çağrılar arasında tekrar kullanın.

Tarama hatalarını teşhis etmek ve performansı optimize etmek konusunda ek kılavuzlar için IronBarcode sorun giderme kılavuzu ve barkod okuyucu eğitimi bölümlerine başvurun.

Sonraki Adımlarınız Neler?

IronBarcode ile bir .NET MAUI barkod tarayıcı oluşturmak, tek bir NuGet paketini yüklemeyi, platform izinlerini yapılandırmayı ve bir dosya yolu veya akış ile BarcodeReader.Read() çağırmayı gerektirir. Aynı API, platforma özgü kod dalları olmadan Android, iOS ve Windows'u hedefler.

Uygulamayı daha da genişletmek için, şu kaynakları göz önünde bulundurun:

Ücretsiz denemenizi başlatmak için bir geliştirme lisans anahtarı alın veya üretim dağıtımı için lisans seçeneklerini keşfedin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez