Altbilgi içeriğine atla
IRONBARCODE KULLANARAK

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

.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.

NuGet NuGet ile yükleyin

PM >  Install-Package BarCode

NuGet'te hızlı kurulum için https://www.nuget.org/packages/BarCode'i kontrol edin. 10 milyonun üzerinde indirme ile, C# ile PDF geliştirmeyi dönüştürüyor. DLL de indirebilirsiniz.

.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:

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" />
<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>
<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();
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();
Imports IronBarCode

Dim builder = MauiApp.CreateBuilder()
builder _
    .UseMauiApp(Of App)() _
    .ConfigureFonts(Sub(fonts)
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular")
    End Sub)

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

Return builder.Build()
$vbLabelText   $csharpLabel

ü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 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.";
        }
    }
}
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.";
        }
    }
}
Imports IronBarCode

Public Partial Class MainPage
    Inherits ContentPage

    Public Sub New()
        InitializeComponent()
    End Sub

    Private Async Sub OnSelectImageClicked(sender As Object, e As EventArgs)
        Dim result = Await FilePicker.PickAsync(New PickOptions With {
            .FileTypes = FilePickerFileType.Images,
            .PickerTitle = "Select a barcode image"
        })

        If result IsNot Nothing Then
            ' Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath)

            ' Read barcodes from the image file
            Dim barcodes = BarcodeReader.Read(result.FullPath)

            ResultLabel.Text = If(barcodes.Any(), $"Found: {barcodes.First().Value}", "No barcodes detected in selected image.")
        End If
    End Sub
End Class
$vbLabelText   $csharpLabel

Çı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");
    }
}
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");
    }
}
Imports IronBarCode

Private Async Sub OnSelectPdfClicked(sender As Object, e As EventArgs)
    Dim result = Await FilePicker.PickAsync(New PickOptions With {
        .PickerTitle = "Select a PDF with barcodes"
    })

    If result IsNot Nothing Then
        ' Read barcodes from every page of the PDF
        Dim barcodes = BarcodeReader.ReadPdf(result.FullPath)

        Dim output = String.Join(vbLf, barcodes.Select(Function(b) $"Page {b.PageNumber}: [{b.BarcodeType}] {b.Value}"))

        Await DisplayAlert("Scan Results", If(output.Length > 0, output, "No barcodes found."), "OK")
    End If
End Sub
$vbLabelText   $csharpLabel

Çı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}");
}
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}");
}
Imports IronBarCode

' Configure the reader for multi-barcode detection with type filtering
Dim options As New BarcodeReaderOptions With {
    .ExpectMultipleBarcodes = True,
    .ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
    .Speed = ReadingSpeed.Balanced
}

Dim barcodes = BarcodeReader.Read(imagePath, options)

For Each barcode In barcodes
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}")
Next
$vbLabelText   $csharpLabel

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;
}
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;
}
Imports IronBarCode
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks

' Read a barcode from a MemoryStream (e.g., an in-memory image buffer)
Private Function ReadFromStream(imageStream As Stream) As BarcodeResult()
    Return BarcodeReader.Read(imageStream)
End Function

' Example: download an image and scan without writing to disk
Private Async Function ScanDownloadedBarcode(imageUrl As String) As Task(Of String)
    Using httpClient As New HttpClient()
        Using stream As Stream = Await httpClient.GetStreamAsync(imageUrl)
            Using memoryStream As New MemoryStream()
                Await stream.CopyToAsync(memoryStream)
                memoryStream.Position = 0

                Dim barcodes = BarcodeReader.Read(memoryStream)
                Return If(barcodes.Any(), barcodes.First().Value, String.Empty)
            End Using
        End Using
    End Using
End Function
$vbLabelText   $csharpLabel

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);
}
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);
}
Imports IronBarCode

' Generate a QR code and display it in a MAUI Image control
Private Async Sub OnGenerateQrClicked(sender As Object, e As EventArgs)
    ' Create a QR code barcode
    Dim qrCode = QRCodeWriter.CreateQrCode(
        value:="https://ironsoftware.com/csharp/barcode/",
        qrCodeSize:=500,
        errorCorrection:=QRCodeWriter.QrErrorCorrectionLevel.Medium
    )

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

    GeneratedImageView.Source = ImageSource.FromFile(tempPath)
End Sub
$vbLabelText   $csharpLabel

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.

Sıkça Sorulan Sorular

.NET MAUI nedir ve barkod tarama entegrasyonu neden zordur?

.NET MAUI, tek bir kod tabanından Android, iOS ve Windows'u hedefleyen çapraz platform bir UI framework'üdür. Barkod tarama zorludur çünkü her platform farklı kamera ve depolama API'leri sağlar. IronBarcode, sizin için platform farklılıklarını ele alan birleşik bir .NET API sağlar.

IronBarcode, .NET MAUI uygulamalarında hangi barkod formatlarını destekler?

IronBarcode, QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, Data Matrix, PDF417, Aztec ve ITF dahil olmak üzere 30'dan fazla barkod sembolojisini destekler. Belirli formatları filtrelemek için BarcodeEncoding enumerasyonunu kullanın.

IronBarcode, bir .NET MAUI uygulamasında PDF dosyalarından barkod okuyabilir mi?

Evet. BarcodeReader.ReadPdf() yöntemi, bir PDF belgesinin tüm sayfalarını tarar ve bir BarcodeResult koleksiyonu döndürür. Her sonuca barkod değeri, türü ve sayfa numarası dahildir.

IronBarcode, tüm .NET MAUI hedef platformlarında çalışıyor mu?

IronBarcode, .NET MAUI projesinde tek bir NuGet paketi kullanarak Android, iOS ve Windows hedeflerini destekler. Platforma özgü yerel SDK bağımlılıkları gerekmez.

Tek bir görüntüden birden fazla barkodu nasıl tararsınız?

BarcodeReaderOptions'ta ExpectMultipleBarcodes = true olarak ayarlayın ve seçenekler nesnesini BarcodeReader.Read()'e geçin. Okuyucu, görüntüde bulunan tüm barkodları algılamak için ek tarama geçişleri yapacaktır.

ReadingSpeed.Faster ile ReadingSpeed.ExtraSlow arasındaki fark nedir?

ReadingSpeed.Faster, iş hacimini önceliklendirir ve yüksek kaliteli görüntüler için iyi çalışır. ReadingSpeed.ExtraSlow, daha agresif görüntü düzeltmesi uygular ve düşük kontrast, döndürülmüş veya kısmen engellenmiş barkodlar gibi zor girdiler için uygundur.

IronBarcode, bir MemoryStream'den barkod okuyabilir mi?

Evet. BarcodeReader.Read(), MemoryStream, FileStream ve ağ akışları dahil bir System.IO.Stream parametresini kabul eder. Bu, bellekteki görüntü verilerinin diske yazmadan taranmasını sağlar.

IronBarcode ile .NET MAUI uygulamasında QR kodu nasıl oluşturulur?

QRCodeWriter.CreateQrCode() ile hedef değeri, boyutu ve hata düzeltme seviyesini kullanın. Sonucu SaveAsPng() kullanarak bir PNG dosyası olarak kaydedin ve ImageSource.FromFile() kullanarak bir MAUI Görüntü kontrolünde görüntüleyin.

.NET MAUI Android uygulamasında barkod tarama için hangi izinler gereklidir?

AndroidManifest.xml'e android.permission.READ_EXTERNAL_STORAGE ve android.permission.CAMERA ekleyin. iOS için, NSPhotoLibraryUsageDescription ve NSCameraUsageDescription anahtarlarını Info.plist'e ekleyin.

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ı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara