Altbilgi içeriğine atla
IRONBARCODE KULLANARAK

.NET MAUI'de C#'ta Çizgikodu Tarayıcı Nasıl Oluşturursunuz?

IronBarcode, .NET MAUI uygulaması içinde doğrudan resim dosyalarından barkodları taramanıza olanak tanır -- kamera akışı, sürücü yapılandırması veya platforma özgü izin döngüleri gerekmez.

JPEG, PNG, GIF, TIFF ve BMP dosyalarından tek bir metod çağrısıyla barkodları tarayabilirsiniz. Aynı kod, Windows, Android ve iOS'u modifikasyon olmadan hedeflemez. Aşağıdaki kod örnekleri ile devam etmek için bir ücretsiz deneme ile başlanabilir.

.NET MAUI Projesi ile Barkod Tarama Nasıl Oluşturulur?

Visual Studio'da bir .NET MAUI projesi kurmak basittir. Visual Studio 2022 veya daha yenisini başlatın, Yeni bir proje oluştur'u seçin, .NET MAUI Uygulaması şablonunu seçin, proje adınızı girin ve hedef platformlarınızı seçin. Bu kılavuz, Windows dağıtımına odaklanmaktadır, ancak aynı proje Android ve iOS'ta çalışır. .NET MAUI, Microsoft'un tek bir paylaşılan kod tabanı kullanarak C# ve XAML ile yerel mobil ve masaüstü uygulamalar oluşturmak için çapraz platform çerçevesidir.

Kamera tabanlı çözümlerden farklı olarak, CameraView kontrol kurulumu ve MauiProgram.cs kaydı gerektiren ZXing.Net.MAUI gibi, IronBarcode özel bir yapılandırma gerektirmez. Sizin MauiProgram.cs varsayılan şablon durumu olarak kalır. Bu, başlangıç kodunuzu üçüncü taraf işlemci kayıtlarından kurtarır ve başlatma sırasında hata yüzey alanını azaltır.

IronBarcode'u yüklemek için Paket Yöneticisi Konsolunda bu komutu çalıştırın:

Install-Package BarCode
Install-Package BarCode
SHELL

Bu tek paket, barkod tarama, QR kod tanıma, çoklu barkod algılama ve barkod oluşturma sunar. Ek ek gereklilikler yoktur.

IronBarcode'yi üretimde etkinleştirmek için, lisans anahtarınızı App.xaml.cs veya MauiProgram.cs içine ayarlayın:

IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY";
IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY";
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY"
$vbLabelText   $csharpLabel

Anahtarı IronBarcode lisanslama sayfası'ndan alabilir veya bir ücretsiz deneme lisansı ile başlayabilirsiniz.

Görüntü Tabanlı Tarama İçin İzinler Nasıl Farklıdır?

Geleneksel kamera tabanlı barkod tarayıcılar, platform manifestlerinde açık izinler gerektirir. Android'de, AndroidManifest.xml ekleyin:

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

iOS'ta, NSCameraUsageDescription beyan edersiniz Info.plist içinde. İzinlerin reddedildiği durumları yönetmek, hatalı yollar ekler ve gözden kaçırılması kolaydır.

IronBarcode bir kamera Önizlemesinden ziyade bir dosya akışından okuyabildiği için sadece dosya sistemi erişimine ihtiyaçınız olacaktır. Windows üzerinde bu otomatik olarak verilir. Android ve iOS'ta, FilePicker kullanıcı bir görüntü seçtiğinde kullanıcı onayını işler -- manuel izin talepleri gerekmez.

MAUI Barkod Tarayıcı İçin Hangi XAML Arayüzü En İyi Çalışır?

Minimal bir arayüz -- bir resim seçici düğmesi, bir resim gösterme alanı ve bir sonuç etiketi -- çoğu barkod tarama senaryosunu kapsar. Aşağıdaki XAML, bir .NET MAUI ContentPage için bu yerleşimi oluşturur:

<?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">
    <ScrollView>
        <VerticalStackLayout Spacing="20" Padding="30">
            <Label Text="MAUI Barcode Scanner"
                   FontSize="24"
                   HorizontalOptions="Center" />
            <Button x:Name="SelectImageBtn"
                    Text="Select Image File"
                    Clicked="OnSelectImage" />
            <Image x:Name="SelectedImageDisplay"
                   HeightRequest="250" />
            <Label x:Name="ResultsLabel"
                   Text="Barcode results will appear here" />
        </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="BarcodeScanner.MainPage">
    <ScrollView>
        <VerticalStackLayout Spacing="20" Padding="30">
            <Label Text="MAUI Barcode Scanner"
                   FontSize="24"
                   HorizontalOptions="Center" />
            <Button x:Name="SelectImageBtn"
                    Text="Select Image File"
                    Clicked="OnSelectImage" />
            <Image x:Name="SelectedImageDisplay"
                   HeightRequest="250" />
            <Label x:Name="ResultsLabel"
                   Text="Barcode results will appear here" />
        </VerticalStackLayout>
    </ScrollView>
</ContentPage>
XML

Düzen, dosya seçiciyi tetiklemek için bir düğme, seçilen resmi göstermek için bir gösterim alanı ve kodlanmış barkod değerleri için bir etiket sağlar. Platforma özgü ayarlamalar gerektirmeden tüm .NET MAUI hedef platformlarında doğru şekilde oluşturulur.

Üretim uygulamaları için, ResultsLabel bir CollectionView ile değiştirerek, özellikle birden fazla barkod içeren belgeleri tararken, birden çok barkod sonucunu kaydırılabilir bir listede görüntülemeyi düşünün.

.NET MAUI'de Görüntü Dosyalarından Barkodlar Nasıl Taratılır?

MainPage.xaml.cs kodu, görüntü seçimini ve barkod okumasını işler. BarcodeReader.Read bir dosya yolunu kabul eder ve bir BarcodeResults koleksiyonu döndürür. Koleksiyondaki her bir öğe barkod Value, BarcodeType ve pozisyon koordinatlarını açığa çıkarır.

İşte tam uygulama:

using IronBarCode;
namespace BarcodeScanner;

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

    private async void OnSelectImage(object sender, EventArgs e)
    {
        try
        {
            // Open the system file picker filtered to image types
            var result = await FilePicker.PickAsync(new PickOptions
            {
                FileTypes = FilePickerFileType.Images,
                PickerTitle = "Select a barcode image"
            });

            if (result != null)
            {
                // Display the selected image in the UI
                var stream = await result.OpenReadAsync();
                SelectedImageDisplay.Source = ImageSource.FromStream(() => stream);

                // Decode all barcodes found in the image
                var barcodes = BarcodeReader.Read(result.FullPath);

                if (barcodes.Count > 0)
                {
                    // Build a display string listing each barcode type and value
                    string output = string.Join("\n",
                        barcodes.Select(b => $"{b.BarcodeType}: {b.Value}"));
                    ResultsLabel.Text = output;
                }
                else
                {
                    ResultsLabel.Text = "No barcodes detected in image";
                }
            }
        }
        catch (Exception ex)
        {
            ResultsLabel.Text = $"Error: {ex.Message}";
        }
    }
}
using IronBarCode;
namespace BarcodeScanner;

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

    private async void OnSelectImage(object sender, EventArgs e)
    {
        try
        {
            // Open the system file picker filtered to image types
            var result = await FilePicker.PickAsync(new PickOptions
            {
                FileTypes = FilePickerFileType.Images,
                PickerTitle = "Select a barcode image"
            });

            if (result != null)
            {
                // Display the selected image in the UI
                var stream = await result.OpenReadAsync();
                SelectedImageDisplay.Source = ImageSource.FromStream(() => stream);

                // Decode all barcodes found in the image
                var barcodes = BarcodeReader.Read(result.FullPath);

                if (barcodes.Count > 0)
                {
                    // Build a display string listing each barcode type and value
                    string output = string.Join("\n",
                        barcodes.Select(b => $"{b.BarcodeType}: {b.Value}"));
                    ResultsLabel.Text = output;
                }
                else
                {
                    ResultsLabel.Text = "No barcodes detected in image";
                }
            }
        }
        catch (Exception ex)
        {
            ResultsLabel.Text = $"Error: {ex.Message}";
        }
    }
}
Imports IronBarCode

Namespace BarcodeScanner

    Public Partial Class MainPage
        Inherits ContentPage

        Public Sub New()
            InitializeComponent()
        End Sub

        Private Async Sub OnSelectImage(sender As Object, e As EventArgs)
            Try
                ' Open the system file picker filtered to image types
                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 in the UI
                    Dim stream = Await result.OpenReadAsync()
                    SelectedImageDisplay.Source = ImageSource.FromStream(Function() stream)

                    ' Decode all barcodes found in the image
                    Dim barcodes = BarcodeReader.Read(result.FullPath)

                    If barcodes.Count > 0 Then
                        ' Build a display string listing each barcode type and value
                        Dim output As String = String.Join(vbCrLf, barcodes.Select(Function(b) $"{b.BarcodeType}: {b.Value}"))
                        ResultsLabel.Text = output
                    Else
                        ResultsLabel.Text = "No barcodes detected in image"
                    End If
                End If
            Catch ex As Exception
                ResultsLabel.Text = $"Error: {ex.Message}"
            End Try
        End Sub
    End Class

End Namespace
$vbLabelText   $csharpLabel

BarcodeReader.Read belirtilen yoldaki dosyayı işler, mevcut tüm barkod sembolojilerini otomatik algılar ve sonuçları hemen döndürür. Metod, Code 128, Code 39, QR Kod, Veri Matrisi, PDF417 ve EAN-13 gibi tüm önemli 1D ve 2D barkod formatlarını destekler.

.NET MAUI, Güçlü Bir Barkod Tarayıcı Kütüphanesi ile Windows Uygulamalarında Barkod Taraması: Görüntü 1 - Tarama barkod çıktısı

FilePicker.PickAsync çağrısı seçiciyi görüntü türleriyle sınırlar, bu nedenle kullanıcılar yanlışlıkla görüntü olmayan dosyaları seçemez. Eğer result null ise, kullanıcı iptal etti -- if (result != null) koruması bunu sessizce işler.

Tarama Sonuçlarını Diyalogda Nasıl Gösterirsiniz?

Kısa doğrulama mesajları için, DisplayAlert ek UI öğeleri gerektirmeden bir modal diyalog sunar:

private async void ShowScanSummary(BarcodeResults barcodes)
{
    if (barcodes.Count > 0)
    {
        // Inform the user how many barcodes were detected
        string message = $"Found {barcodes.Count} barcode(s) in the image.";
        await DisplayAlert("Scan Complete", message, "OK");
    }
    else
    {
        await DisplayAlert("No Results", "No barcodes were found in the image.", "OK");
    }
}
private async void ShowScanSummary(BarcodeResults barcodes)
{
    if (barcodes.Count > 0)
    {
        // Inform the user how many barcodes were detected
        string message = $"Found {barcodes.Count} barcode(s) in the image.";
        await DisplayAlert("Scan Complete", message, "OK");
    }
    else
    {
        await DisplayAlert("No Results", "No barcodes were found in the image.", "OK");
    }
}
Private Async Sub ShowScanSummary(barcodes As BarcodeResults)
    If barcodes.Count > 0 Then
        ' Inform the user how many barcodes were detected
        Dim message As String = $"Found {barcodes.Count} barcode(s) in the image."
        Await DisplayAlert("Scan Complete", message, "OK")
    Else
        Await DisplayAlert("No Results", "No barcodes were found in the image.", "OK")
    End If
End Sub
$vbLabelText   $csharpLabel

Bu desen, basit onay akışları için iyi çalışır. Dekode edilmiş değerlere göre hareket etmesi gereken uygulamalar için -- örneğin, bir barkod envanter yönetim sisteminde bir ürünü barkoduyla aramak -- barcodes koleksiyonunu iş mantığı katmanınıza doğrudan OnSelectImage işleyicisinden iletin.

Birden Çok Barkodu Tararken ve Algılama Hızını Ayarlarken Nasıl Yapılır?

Bir resim birkaç barkod içerdiğinde, IronBarcode bunları varsayılan olarak algılar. Hangi formatları bekleyeceğinizi bildiğinizde daha iyi performans için, BarcodeReader.Read çağrısından önce BarcodeReaderOptions yapılandırın:

using IronBarCode;

// Target only QR codes and Code 128 for faster detection
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;

// Target only QR codes and Code 128 for faster detection
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

' Target only QR codes and Code 128 for faster detection
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

.NET MAUI, Güçlü Bir Barkod Tarayıcı Kütüphanesi ile Windows Uygulamalarında Barkod Taraması: Görüntü 2 - Birden fazla barkod tarama çıktısı

ExpectBarcodeTypes özelliği algılama motorunu belirtilmiş sembolojilere daraltır. Speed'i ReadingSpeed.Faster olarak ayarlamak yüksek kontrastlı, bozulmamış görüntülere uygundur. ReadingSpeed.Detailed ek görüntü düzeltme geçişleri uygular ve dönme, eğrilik ve düşük çözünürlüklü girdilerle başa çıkar, bunun karşılığında ek işlem süresi alır.

ExpectMultipleBarcodes = true okuyucuya ilk eşleşmeden sonra taramaya devam etmesini söyler, erken döndürmek yerine. Tek barkodlu senaryolarda, bu seçeneği atlamak her taramada birkaç milisaniye tasarruf sağlar.

Bu yapılandırma, bir perakende uygulamasının ürün barkodlarını okuması, bir depo aracının nakliye fotoğraflarındaki baskılı barkod etiketlerini işlemesi veya yüklenen makbuzlardan QR kodlarını çıkarmak için bir belge iş akışı gibi çeşitli uygulamalar için tarayıcıyı pratik hale getirir.

Zorlayıcı veya Düşük Kaliteli Görüntüler Nasıl Yönetilir?

Üretim görüntüleri nadiren kusursuzdur. Sert aydınlatma altında çekilen depo fotoğrafları, e-posta istemcilerinden alınan ekran görüntüleri ve taranmış belgeler hepsi gürültü, sıkıştırma artefaktları ve geometrik bozulma ekler. IronBarcode, çözümleme öncesinde görüntüleri ön işlemek için ImageFilterCollection sağlar:

using IronBarCode;
using IronSoftware.Drawing;

// Apply corrections for a low-quality warehouse photo
var options = new BarcodeReaderOptions
{
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter(1.2f),
        new DenoiseFilter()
    },
    Speed = ReadingSpeed.Detailed
};

var barcodes = BarcodeReader.Read(imagePath, options);
using IronBarCode;
using IronSoftware.Drawing;

// Apply corrections for a low-quality warehouse photo
var options = new BarcodeReaderOptions
{
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter(1.2f),
        new DenoiseFilter()
    },
    Speed = ReadingSpeed.Detailed
};

var barcodes = BarcodeReader.Read(imagePath, options);
Imports IronBarCode
Imports IronSoftware.Drawing

' Apply corrections for a low-quality warehouse photo
Dim options As New BarcodeReaderOptions With {
    .ImageFilters = New ImageFilterCollection From {
        New SharpenFilter(),
        New ContrastFilter(1.2F),
        New DenoiseFilter()
    },
    .Speed = ReadingSpeed.Detailed
}

Dim barcodes = BarcodeReader.Read(imagePath, options)
$vbLabelText   $csharpLabel

SharpenFilter sıkıştırılmış veya odak dışı çekimlerden kenar tanımlamasını kurtarır. ContrastFilter aydınlatmanın eşit olmadığı durumlarda yardımcı olur. DenoiseFilter düşük çözünürlük taramalarından gelen benekliliği azaltır. Bu filtreleri ReadingSpeed.Detailed ile birleştirmek, zorlu materyalde okuma oranlarını maksimize eder.

Farklı kaynaklardan kullanıcı tarafından yüklenen resimleri kabul eden .NET MAUI uygulamaları için varsayılan olarak muhafazakar bir filtre seti uygulamak ve ikinci bir yeniden deneme durumunda daha agresif düzeltmeye yükseltmek, yaygın durumda görünür gecikme eklemeden kullanıcı deneyimini iyileştirir. Bir Uri veya byte[]'ı doğrudan BarcodeReader.Read'a da iletebilirsiniz, bu da görüntünün dosya sistemi yerine bir ağ yanıtından geldiğinde yararlıdır. Ek örnekler için IronBarcode nasıl yaparım kılavuzlarına bakın.

Görüntü Tabanlı Tarama .NET MAUI Uygulamalarına Neden Uygundur?

Bir CameraView kontrolü aracılığıyla canlı kamera taraması, platforma özgü izinlerin verilmesini, kamera ön izlesi için yaşam döngüsü yönetimini ve odak olaylarının işlendiğini gerektirir. iOS'ta bu ayrıca AVCaptureSession yapılandırmasını gerektirir; Android'de, CameraX. Her platform kendi hatalı modlarını ekler.

Görüntü tabanlı tarama, endişe kategorisini tamamen ortadan kaldırır. IronBarcode API referansı gösteriyor ki BarcodeReader.Read bir dosya yolu, bir Stream, bir Bitmap veya bir byte[] kabul eder -- MAUI uygulamanızın üretebileceği herhangi bir temsil. Bu, görüntünün FilePicker'dan, bir ağ indirmesinden, bitmap'e dönüştürülmüş bir PDF sayfasından veya bir e-posta ekinden gelmiş olmasına bakılmaksızın aynı tarama mantığının çalıştığı anlamına gelir.

Kamera donanımı kapalı kaldığından pil tüketimi daha düşüktür. Canlı bir önizlemeden UI titremesi yoktur ve uygulama duraklatma ve yeniden başlatma sırasında kamera yaşam döngüsü olaylarını yönetme ihtiyaçı yoktur. Tablet ve masaüstü form faktörlerinde -- canlı kamera vizörü nadiren uygun olduğunda -- görüntü tabanlı çözümleme, bir uzlaşmadan ziyade doğal varsayılan haline gelir. Kullanıcılar dosyaları bulut depolama, yerel klasörler veya kamera rulolarından açabilirler, cihaz türünden bağımsız olarak aynı FilePicker çağrısı ile.

Barkod etiketlerini fotoğraflayıp yükledikleri iş akışları için -- ASP.NET barkod tarayıcı web uygulamalarında yaygın olduğu gibi -- aynı BarcodeReader.Read çağrısı hem mobil istemci hem de sunucuda çalışır, iki tane tarama uygulaması sürdürme gereğini ortadan kaldırır.

IronBarcode ZXing.Net.MAUI'ye Nasıl Karşılaştırılır?

ZXing.Net.MAUI, canlı kamera taramasını hedefler ve ürün gereksinimi olarak gerçek zamanlı vizör geri bildirimi gerektiğinde iyi çalışır. Bu, CameraView entegrasyonunu, platform işleyicisi kaydını ve çalışma zamanı izin taleplerini gerektirir.

IronBarcode, dosya tabanlı ve akış tabanlı kod çözmeyi hedefler, bu da kurumsal belge iş akışlarının çoğunluğunu kapsar. Daha geniş bir semboloji aralığını destekler, PDF417, Data Matrix ve Code 128 dahil olmak üzere ve ZXing'in sunmadığı görüntü filtresi ön işleme sağlar. Kullanıcıların canlı tarama yapmak yerine görüntü yakaladığı veya yüklediği uygulamalar için IronBarcode daha doğrudan uygun bir seçenektir.

Eğer uygulamanız dosya tabanlı kod çözümlemenin yanı sıra canlı kamera taramasına ihtiyaç duyuyorsa, her iki kütüphaneyi birleştirebilirsiniz: vizör iş akışı için ZXing.Net.MAUI ve toplu dosya işleme için IronBarcode.

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

IronBarcode ile .NET MAUI barkod tarayıcı oluşturmak, 30 satırdan az C# kodu gerektirir. Görüntü dosyası yaklaşımı, MAUI kod tabanınızı kamera izin mantığından ve platforma özgü başlatmadan uzak tutar ve aynı tarama çağrısı Windows, Android ve iOS'ta aynı şekilde çalışır.

IronBarcode API dokümantasyonu, ek yetenekleri kapsar: PDF belgelerinden barkod okuma, birden çok görüntünün toplu işlenmesi, özel görüntü filtreleri yazma ve barkodları okumanın yanı sıra onları oluşturma. Özellikler genel bakışı, desteklenen her semboloji ve formatı listeler.

Ücretsiz bir deneme başlatin ve projenizde IronBarcode'u test edin ya da bir lisans satin alin ve uretim surumu icin kullanmaya hazır olun.

Şimdi IronBarcode ile başlayın.
green arrow pointer

Sıkça Sorulan Sorular

Bir kameranĿz olmadan .NET MAUI'de bir barkod tarayĿcĿsĿ nasĿl oluşturursunuz?

NuGet kullanarak IronBarcode yükleyin (`Install-Package BarCode`), sonra `FilePicker.PickAsync` ile elde edilen bir yol ile `BarcodeReader.Read(filePath)` çağrĿsĿ yapĿn. Kamera izin veya `CameraView` kurulumuna gerek yoktur.

IronBarcode .NET MAUI'de Android ve iOS'ta barkod tarayabilir mi?

Evet. AynĿ `BarcodeReader.Read` çağrĿsĿ, platforma özgü kod yollarĿ veya manifest değişiklikleri olmadan Windows, Android ve iOS'ta çalĿr.

IronBarcode, barkod tarama için hangi resim formatlarĿnĿ destekler?

IronBarcode, JPEG, PNG, GIF, TIFF ve BMP dosyalarĿndan barkodlarĿ okur. AyrĿca `Stream`, `Bitmap` ve `byte[]` girdilerini kabul eder, bu nedenle ağ yanĿtlarĿndan gelen resimler diske yazĿlmadan da çalĿr.

Birden fazla barkodu tek bir resimden .NET MAUI'de nasĿl tararsĿnĿz?

`ExpectMultipleBarcodes = true` ayarĿnĿ `BarcodeReaderOptions`'a yapĿlandĿrĿn ve seçenekleri `BarcodeReader.Read`'a geçin. Okuyucu, tespit edilen tüm barkodlarĿ tek bir `BarcodeResults` koleksiyonunda döndürür.

IronBarcode ile ZXing.Net.MAUI arasĿndaki fark nedir?

ZXing.Net.MAUI, `CameraView` kontrolleri aracĿlĿĿla canlĿ kamera taramasĿnĿ hedefler. IronBarcode dosya tabanlĿ ve akĿ tabanlĿ kodlamayĿ hedefler, daha fazla semboloji (PDF417 ve Data Matrix dahil) destekler ve düşük kaliteli girdiler için resim filtresi ön işlemesi sağlar.

BulanĿk veya düşük kaliteli resimlerde barkod algĿlamasĿnĿ nasĿl iyileştirirsiniz?

`SharpenFilter`, `ContrastFilter` ve `DenoiseFilter` ile bir `ImageFilterCollection`'u `BarcodeReaderOptions`'a ekleyin ve `Speed = ReadingSpeed.Detailed` ayarĿnĿ yapĿn. Bu, deşitirilen kodlamadan önce resim düzeltmeleri uygular.

IronBarcode .NET MAUI'de hangi barkod formatlarĿnĿ destekler?

IronBarcode tüm ana 1D ve 2D semboloji: Kod 128, Kod 39, QR Kod, Data Matrix, PDF417, EAN-13, EAN-8, UPC-A, UPC-E, Aztec ve daha fazlasĿnĿ destekler. Tam liste IronBarcode özellikler sayfasĿnda bulunabilir.

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