Altbilgi içeriğine atla
IRONBARCODE KULLANARAK

.NET MAUI Çizgikodu Tarayıcı SDK Uygulaması Nasıl Oluşturulur

.NET MAUI, Android, iOS ve Windows'u hedefleyen tek bir kod tabanı vaadini yerine getirir. Zorluk, barkod tarama gibi yerel donanım özelliklerini entegre etmeniz gerektiğinde ortaya çıkar. Kamera API'lerini manuel olarak köprülemek, platforma özgü yapılandırmalar, koşullu derleme direktifleri 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ı nasıl oluşturacağınızı gösterir. Proje kuracak, platform izinlerini yapılandıracak, görüntü dosyalarından barkodları tarayacak, PDF belgelerinden barkodları okuyacak ve tarama seçenekleri ile birden fazla semboloji kullanacaksınız -- tüm bunları desteklenen herhangi bir hedefte çalıştırabileceğiniz kodla yapacaksınız.

Ücretsiz denemenizi başlatın ve aşağıdaki adımları izleyin.

NuGet NuGet ile Yükle

PM >  Install-Package BarCode

IronBarcode üzerine NuGet için hızlı bir kurulum kontrol edin. 10 milyondan fazla indirme ile C# ile PDF geliştirmesini dönüştürüyor. DLL de indirebilirsiniz.

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

.NET MAUI barkod tarayıcı SDK'yi kurmak, 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. Projeyi açıklayıcı bir şey olarak adlandırın, örneğin "BarcodeScanner" ve hedef çerçeve olarak .NET 8 veya üstünü seçin. Visual Studio, Android ve iOS için platforma özgü klasörlerle varsayılan proje yapısını oluşturur.

.NET 10'u hedef alıyorsanız aynı proje şablonu geçerlidir. <TargetFrameworks> özelliğini .csproj dosyanızda güncelleyerek gereken net10.0-android, net10.0-ios ve net10.0-windows10.0.19041.0 dahil edin. Tam hedef çerçeve monikerleri ve minimum OS sürüm gereksinimleri için .NET MAUI desteklenen platformlar belgelerine bakın.

IronBarcode Yükleyin

IronBarcode NuGet paketini Paket Yöneticisi Konsolunu kullanarak yükleyin:

Install-Package BarCode

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

Platform İzinlerini Yapılandırın

Canlı bir kamera akışından ziyade görüntü dosyalarından tarama yaparken 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'ye aşağıdakileri ekleyin:

<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, Platforms/iOS/Info.plist'ye bu girişleri ekleyin:

<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'yi Başlatın

Lisans anahtarınızı uygulama yaşam döngüsünün erken aşamalarında ayarlayın, böylece IronBarcode herhangi bir tarama çağrısı yapılmadan önce tamamen etkinleştirilmiş olur. Aktivasyonu MauiProgram.cs içine yerleştirin:

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

IronBarcode, geliştirme ve test için ücretsiz bir deneme lisansı sağlar. Anahtarı başlangıçta bir kez ayarlayın; aynı işlemdeki tüm BarcodeReader ve BarcodeWriter çağrıları etkin lisansı kullanır.

Görüntü Dosyalarından Barkod Nasıl Okunur?

Herhangi bir MAUI barkod tarayıcısının temel işlevi, seçilen görüntülerden barkodları okumaktır. BarcodeReader.Read() metodu bir dosya yolu kabul eder ve tespit edilen her bir barkod için BarcodeResult nesnelerinden oluşan bir koleksiyon döndürür.

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

Kullanıcıların bir resim dosyası seçip taranmış barkod verilerini görüntülemesine olanak tanıyan 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 Uygulayın

Tarama mantığını MainPage.xaml.cs'ye ekleyin. Bu kod, MAUI FilePicker API'si aracılığıyla resim seçimini işler ve seçilen dosya yolunu IronBarcode'a aktarır:

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 Platformlar Arası Tarayıcı Oluşturma: Görsel 1 - Taranmış barkod çıktısı

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

PDF Belgelerinden Barkod Nasıl Taranır?

IronBarcode'un birçok alternatiften ayıran özelliklerden biri, barkodları doğrudan PDF dosyalarından okumasıdır. Bu, belge iş akışlarını ele alan .NET MAUI uygulamaları için gereklidir -- gönderi manifestleri, satın alma emirleri, tıbbi kayıtlar ve benzeri kullanım durumları, PDF'ye gömülü barkodlara bağlıdır.

BarcodeReader.ReadPdf() metodu, bir dosya yolu kabul eder ve görüntü okuyucunun BarcodeResult koleksiyonunun aynısını döndürür, ek olarak her barkodun hangi PDF sayfasından geldiğini belirten 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 Platformlar Arası Tarayıcı Oluşturma: Görsel 2 - İçinde QR kodları olan bir PDF tarama çıktısı

ReadPdf() metodu, bir PDF'in tüm sayfalarını tarar ve barkod verilerini sayfa numaralarıyla birlikte döndürerek içinde birden fazla barkod bulunan belgeleri işlemeyi basit hale getirir. PDF düzinelerce sayfa içeriyorsa, taramayı alakalı sayfalarla sınırlandırmak ve işlem süresini azaltmak için BarcodeReaderOptions nesnesi ile PageNumbers belirli bir aralığa ayarlamayı düşünün.

Birden Çok Barkod ve QR Kodları Nasıl Ele Alınır?

Üretim uygulamaları genellikle tek bir görüntüden birden fazla barkod tespit etmeyi veya sonuçları barkod türüne göre filtrelemeyi gerektirir. BarcodeReaderOptions sınıfı, tespit davranışını kontrol eden yapılandırma özelliklerini sunar. ExpectMultipleBarcodes 'i true olarak ayarlamak, okuyucuya erken durmak yerine ilk eşleşmeden sonra taramaya devam etmesini söyler:

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ında denge sağlar. ReadingSpeed.Faster, yüksek kaliteli görüntüleri toplu olarak tarayan uygulamalar için uygun olan veri işleme hızını önceliklendirir. ReadingSpeed.ExtraSlow, düşük kontrast, eğik açılar veya kısmen örtülmüş kodlar gibi zorlu girişler için daha agresif görüntü düzeltme geçişleri uygular. ReadingSpeed.Balanced, çoğu uygulama için doğru başlangıç noktasıdır.

BarcodeEncoding numaralandırması bit düzeyinde kombinasyonları destekler, böylece gereksiz kontrollerle performansı cezalandırmadan taramayı tam olarak kullanım durumuna uygun sembolojilerle sınırlayabilirsiniz.

Memory Streams Üzerinden Barkod Nasıl Okunur?

Çoğu senaryoda dosya yolları iyi çalışır, ancak bazı .NET MAUI iş akışları görüntü verilerini bellek üzerinden iletir -- bir kamera önizlemesinden yakalanan kareler, bir REST API'den indirilen baytlar veya süreç içinde oluşturulan görüntü verileri. IronBarcode, BarcodeReader.Read() aşırı yüklemesinde doğrudan 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ını kabul eder, MemoryStream, FileStream ve ağ akışları dahil. Kütüphane, format tespitini dahili olarak işler, bu yüzden Read() çağrılmadan önce görüntü türünü belirtmeniz gerekmez.

Bir MAUI Uygulamasında Barkod Nasıl Üretilir?

IronBarcode, okuma işleminin yanı sıra barkod üretimini de gerçekleştirir. BarcodeWriter sınıfı, barkodları resim 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ği ile birlikte barkodları yazdırması veya paylaşması gereken envanter uygulamaları için faydalı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ı, dört QR hata düzeltme seviyesini (Düşük, Orta, Çeyrek, Yüksek), özel boyutlandırma ve ön plan/arka plan rengi kontrolünü içeren stil seçeneklerini destekler. QR olmayan sembolojiler için, uygun BarcodeEncoding değeri ile BarcodeWriter.CreateBarcode() kullanın. barkod oluşturma API referansı, desteklenen tüm çıktı formatlarını belgelemektedir.

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

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

.NET MAUI geliştirme için IronBarcode yetenekleri
YetkinlikDetay
Çoklu platform desteğiTek bir NuGet paketinden Android, iOS ve Windows hedefler
Çoklu giriş kaynaklarıDosya yollarından, bellek akışlarından ve PDF belgelerinden tarama
Format kapsamı30'dan fazla 1D ve 2D sembolojiyi çözer, QR, Veri Matrisi ve PDF417 dahil
Barkod üretimiPNG, bitmap veya akış çıktısı olarak QR kodları ve 1D barkodlar üretir
Görüntü düzeltmeDönen, kaymış ve düşük kontrastlı girdileri otomatik olarak yönetir
Yerel SDK bağımlılığı yokPlatforma özgü yerel bağlar gerektirmeyen saf .NET kütüphanesi

"Yerel SDK bağımlılığı yok" noktası, platforma özgü yerel kütüphanelerin her hedef için ayrı bağlama adımları gerektirdiğinden .NET MAUI projelerinde önemlidir. IronBarcode bu karmaşıklığı tamamen önler, bu da aynı NuGet referansının ek yapılandırmaya gerek kalmadan desteklenen üç platform için çalışan ikili dosyalar üretmesi anlamına gelir.

Desteklenen barkod formatlarının tam listesi için IronBarcode desteklenen formatlar belgelerine bakın. Üretim dağıtımı için fiyatlandırma ve lisanslama koşulları hakkında bilgi almak için IronBarcode lisanslama sayfasını inceleyin.

Üretimde Barkod Taraması İçin En İyi Uygulamalar Nelerdir?

Bir barkod tarayıcıyı üretime dağıtmak, temel okuma çağrısının ötesinde birkaç alana dikkat etmeyi gerektirir. .NET MAUI barkod uygulamalarındaki en yaygın hata noktalarını ele alan aşağıdaki kılavuzlar.

Doğru okuma hızını seçin. ReadingSpeed.Balanced çoğu gerçek dünya görüntüsünü doğru şekilde işler. ReadingSpeed.ExtraSlow'ü basılı belgelerin veya kullanıcıların yeniden çekemeyeceği görüntülerin taramaları için ayırın. Her taramanın oldukça uzun sürdüğü için yüksek hacimli işler için ReadingSpeed.ExtraSlow'den kaçının.

Beklenen türlere göre filtrele. Eğer uygulama yalnızca QR kodları işliyorsa, ExpectBarcodeTypes = BarcodeEncoding.QRCode ayarlayın. Arama alanının kısıtlanması, işlem süresini azaltır ve arka plan grafiklerinde bulunan diğer sembolojilerden gelen yanlış pozitifleri ortadan kaldırır.

Sadece gerektiğinde ExpectMultipleBarcodes kullanın. Bunu true ayarlamak, okuyucunun her zaman ek geçişler yapmasına neden olur. Tek barkod girdileri için varsayılanı (false) bırakın, böylece ilk geçerli kod bulunduğunda tarama döner.

Boş sonuçları nazikçe yönetin. BarcodeReader.Read(), tespit edilen barkod olmadığında hata atmadan boş bir dizi döndürür. .Any() kontrol edin ve First()'e erişmeden önce kullanıcıya net bir mesaj sunun. Bir yeniden deneme istemiyle rehberlik sunmak ('barkodun iyi aydınlatılmış ve ortalandığından emin olun') genel bir hatadan daha iyi bir kullanıcı deneyimi sunar.

Seçenekler nesnesini önbelleğe alın. Tüm taramalarda bir BarcodeReaderOptions örneği oluşturmak tahsisatlar ekler. Seçenekleri sınıf seviyesinde bir kez oluşturun ve çağrılar arasında tekrar kullanın.

Tarama hatalarını teşhis etmek ve performansı optimize etmek için ek kılavuzluk için IronBarcode sorun giderme kılavuzu ve barkod okuyucu kılavuzunu inceleyin.

Sıradaki Adımlarınız Neler?

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

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

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

Sıkça Sorulan Sorular

.NET MAUI nedir ve barkod taramayı entegre etmek neden zorludur?

.NET MAUI, tek bir kod tabanından Android, iOS ve Windows'u hedefleyen çapraz platform bir UI framework'tür. Barkod tarama, her platform farklı kamera ve depolama API'ları sunduğu için zordur. IronBarcode, sizin için platform farklarını yönen bir birleşik .NET API sunar.

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

IronBarcode, 30'dan fazla barkod sembolojisini destekler, QR Kod, Kod 128, Kod 39, EAN-13, EAN-8, UPC-A, UPC-E, Veri Matrisi, PDF417, Aztec ve ITF dahil. Belirli formatlara göre filtrelemek için BarcodeEncoding enumunu 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 sonuç, barkod değeri, türü ve sayfa numarasını içerir.

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

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

Tek bir resimden birden fazla barkodu nasıl tararsınız?

BarcodeReaderOptions içinde ExpectMultipleBarcodes = true olarak ayarlayın ve seçenekler nesnesini BarcodeReader.Read()'e geçirin. Okuyucu, resimdeki tüm barkodları algılamak için ek tarama geçişleri yapar.

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

ReadingSpeed.Faster, çıktıyı önceliklendirir ve yüksek kaliteli görseller için iyi çalışır. ReadingSpeed.ExtraSlow, daha agresif görüntü düzeltmesi uygular ve düşük kontrastlı, döndürülmüş veya kısmi olarak engellenmiş barkodlar gibi zorlu girdiler için uygundur.

IronBarcode, bir MemoryStream'den barkod okuyabilir mi?

Evet. BarcodeReader.Read(), MemoryStream, FileStream ve ağ akışlarını içeren bir System.IO.Stream parametresini kabul eder. Bu, hafızadaki görüntü verilerini diske yazmadan tarama yapmanıza olanak tanır.

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

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

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

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

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

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